Rev 2352 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2352 | Rev 2361 | ||
---|---|---|---|
Line 329... | Line 329... | ||
329 | _kgem_submit(&sna_device->kgem, &execbuffer); |
329 | _kgem_submit(&sna_device->kgem, &execbuffer); |
Line 330... | Line 330... | ||
330 | 330 | ||
Line -... | Line 331... | ||
- | 331 | }; |
|
- | 332 | ||
- | 333 | ||
- | 334 | int sna_blit_tex(bitmap_t *dst_bitmap, int dst_x, int dst_y, |
|
- | 335 | int w, int h, bitmap_t *src_bitmap, int src_x, int src_y, |
|
- | 336 | bitmap_t *mask_bitmap) |
|
- | 337 | ||
- | 338 | { |
|
- | 339 | struct sna_composite_op cop; |
|
- | 340 | batchbuffer_t execbuffer; |
|
- | 341 | BoxRec box; |
|
- | 342 | ||
- | 343 | struct kgem_bo src_bo, mask_bo, dst_bo; |
|
- | 344 | ||
- | 345 | memset(&cop, 0, sizeof(cop)); |
|
- | 346 | memset(&execbuffer, 0, sizeof(execbuffer)); |
|
- | 347 | memset(&src_bo, 0, sizeof(src_bo)); |
|
- | 348 | memset(&dst_bo, 0, sizeof(dst_bo)); |
|
- | 349 | memset(&mask_bo, 0, sizeof(mask_bo)); |
|
- | 350 | ||
- | 351 | src_bo.gaddr = src_bitmap->gaddr; |
|
- | 352 | src_bo.pitch = src_bitmap->pitch; |
|
- | 353 | src_bo.tiling = 0; |
|
- | 354 | ||
- | 355 | dst_bo.gaddr = dst_bitmap->gaddr; |
|
- | 356 | dst_bo.pitch = dst_bitmap->pitch; |
|
- | 357 | dst_bo.tiling = 0; |
|
- | 358 | ||
- | 359 | mask_bo.gaddr = mask_bitmap->gaddr; |
|
- | 360 | mask_bo.pitch = mask_bitmap->pitch; |
|
- | 361 | mask_bo.tiling = 0; |
|
- | 362 | ||
- | 363 | box.x1 = dst_x; |
|
- | 364 | box.y1 = dst_y; |
|
- | 365 | box.x2 = dst_x+w; |
|
- | 366 | box.y2 = dst_y+h; |
|
- | 367 | ||
- | 368 | sna_device->render.composite(sna_device, 0, |
|
- | 369 | src_bitmap, &src_bo, |
|
- | 370 | mask_bitmap, &mask_bo, |
|
- | 371 | dst_bitmap, &dst_bo, |
|
- | 372 | src_x, src_y, |
|
- | 373 | src_x, src_y, |
|
- | 374 | dst_x, dst_y, |
|
- | 375 | w, h, &cop); |
|
- | 376 | ||
- | 377 | cop.box(sna_device, &cop, &box); |
|
- | 378 | cop.done(sna_device, &cop); |
|
- | 379 | ||
- | 380 | INIT_LIST_HEAD(&execbuffer.objects); |
|
- | 381 | list_add_tail(&src_bitmap->obj->exec_list, &execbuffer.objects); |
|
- | 382 | list_add_tail(&mask_bitmap->obj->exec_list, &execbuffer.objects); |
|
- | 383 | ||
- | 384 | _kgem_submit(&sna_device->kgem, &execbuffer); |