• Home
  • Raw
  • Download

Lines Matching full:this

5  * copy of this software and associated documentation files (the "Software"),
11 * The above copyright notice and this permission notice (including the next
48 NineSurface9_CreatePipeSurfaces( struct NineSurface9 *This );
51 NineSurface9_ctor( struct NineSurface9 *This, in NineSurface9_ctor() argument
65 DBG("This=%p pDevice=%p pResource=%p Level=%u Layer=%u pDesc=%p\n", in NineSurface9_ctor()
66 This, pParams->device, pResource, Level, Layer, pDesc); in NineSurface9_ctor()
68 /* Mark this as a special surface held by another internal resource. */ in NineSurface9_ctor()
82 This->data = (uint8_t *)user_buffer; in NineSurface9_ctor()
96 /* TODO: this is (except width and height) duplicate from in NineSurface9_ctor()
99 This->base.info.screen = pParams->device->screen; in NineSurface9_ctor()
100 This->base.info.target = PIPE_TEXTURE_2D; in NineSurface9_ctor()
101 This->base.info.width0 = pDesc->Width; in NineSurface9_ctor()
102 This->base.info.height0 = pDesc->Height; in NineSurface9_ctor()
103 This->base.info.depth0 = 1; in NineSurface9_ctor()
104 This->base.info.last_level = 0; in NineSurface9_ctor()
105 This->base.info.array_size = 1; in NineSurface9_ctor()
106 This->base.info.nr_samples = multisample_type; in NineSurface9_ctor()
107 This->base.info.usage = PIPE_USAGE_DEFAULT; in NineSurface9_ctor()
108 This->base.info.bind = PIPE_BIND_SAMPLER_VIEW; /* StretchRect */ in NineSurface9_ctor()
111 This->base.info.bind |= PIPE_BIND_RENDER_TARGET; in NineSurface9_ctor()
113 This->base.info.bind = d3d9_get_pipe_depth_format_bindings(pDesc->Format); in NineSurface9_ctor()
115 This->base.info.bind |= PIPE_BIND_SAMPLER_VIEW; in NineSurface9_ctor()
118 This->base.info.flags = 0; in NineSurface9_ctor()
119 This->base.info.format = d3d9_to_pipe_format_checked(This->base.info.screen, in NineSurface9_ctor()
121 This->base.info.target, in NineSurface9_ctor()
122 This->base.info.nr_samples, in NineSurface9_ctor()
123 This->base.info.bind, in NineSurface9_ctor()
127 if (This->base.info.format == PIPE_FORMAT_NONE && pDesc->Format != D3DFMT_NULL) in NineSurface9_ctor()
131 const unsigned w = util_format_get_blockwidth(This->base.info.format); in NineSurface9_ctor()
132 const unsigned h = util_format_get_blockheight(This->base.info.format); in NineSurface9_ctor()
139 This->format_conversion = d3d9_to_pipe_format_checked(This->base.info.screen, in NineSurface9_ctor()
141 This->base.info.target, in NineSurface9_ctor()
142 This->base.info.nr_samples, in NineSurface9_ctor()
143 This->base.info.bind, in NineSurface9_ctor()
146 if (This->base.info.format != This->format_conversion) { in NineSurface9_ctor()
147 This->data_conversion = align_calloc( in NineSurface9_ctor()
148 nine_format_get_level_alloc_size(This->format_conversion, in NineSurface9_ctor()
152 if (!This->data_conversion) in NineSurface9_ctor()
154 This->stride_conversion = nine_format_get_stride(This->format_conversion, in NineSurface9_ctor()
161 This->data = align_calloc( in NineSurface9_ctor()
162 nine_format_get_level_alloc_size(This->base.info.format, in NineSurface9_ctor()
166 if (!This->data) in NineSurface9_ctor()
170 hr = NineResource9_ctor(&This->base, pParams, pResource, in NineSurface9_ctor()
177 This->transfer = NULL; in NineSurface9_ctor()
179 This->texture = TextureType; in NineSurface9_ctor()
180 This->level = Level; in NineSurface9_ctor()
181 This->level_actual = Level; in NineSurface9_ctor()
182 This->layer = Layer; in NineSurface9_ctor()
183 This->desc = *pDesc; in NineSurface9_ctor()
185 This->stride = nine_format_get_stride(This->base.info.format, pDesc->Width); in NineSurface9_ctor()
187 if (This->base.resource && (pDesc->Usage & D3DUSAGE_DYNAMIC)) in NineSurface9_ctor()
188 This->base.resource->flags |= NINE_RESOURCE_FLAG_LOCKABLE; in NineSurface9_ctor()
190 if (This->base.resource && (pDesc->Usage & (D3DUSAGE_RENDERTARGET | D3DUSAGE_DEPTHSTENCIL))) in NineSurface9_ctor()
191 NineSurface9_CreatePipeSurfaces(This); in NineSurface9_ctor()
194 if (This->base.resource && (pDesc->Usage & D3DUSAGE_RENDERTARGET)) in NineSurface9_ctor()
195 … nine_context_clear_render_target(pParams->device, This, 0, 0, 0, pDesc->Width, pDesc->Height); in NineSurface9_ctor()
197 NineSurface9_Dump(This); in NineSurface9_ctor()
203 NineSurface9_dtor( struct NineSurface9 *This ) in NineSurface9_dtor() argument
205 DBG("This=%p\n", This); in NineSurface9_dtor()
207 if (This->transfer) { in NineSurface9_dtor()
208 struct pipe_context *pipe = nine_context_get_pipe_multithread(This->base.base.device); in NineSurface9_dtor()
209 pipe->transfer_unmap(pipe, This->transfer); in NineSurface9_dtor()
210 This->transfer = NULL; in NineSurface9_dtor()
216 if (p_atomic_read(&This->pending_uploads_counter)) in NineSurface9_dtor()
217 nine_csmt_process(This->base.base.device); in NineSurface9_dtor()
219 pipe_surface_reference(&This->surface[0], NULL); in NineSurface9_dtor()
220 pipe_surface_reference(&This->surface[1], NULL); in NineSurface9_dtor()
223 if (!This->base.base.container && This->data) in NineSurface9_dtor()
224 align_free(This->data); in NineSurface9_dtor()
225 if (This->data_conversion) in NineSurface9_dtor()
226 align_free(This->data_conversion); in NineSurface9_dtor()
227 NineResource9_dtor(&This->base); in NineSurface9_dtor()
231 NineSurface9_CreatePipeSurfaces( struct NineSurface9 *This ) in NineSurface9_CreatePipeSurfaces() argument
234 struct pipe_screen *screen = NineDevice9_GetScreen(This->base.base.device); in NineSurface9_CreatePipeSurfaces()
235 struct pipe_resource *resource = This->base.resource; in NineSurface9_CreatePipeSurfaces()
239 assert(This->desc.Pool == D3DPOOL_DEFAULT); in NineSurface9_CreatePipeSurfaces()
250 templ.u.tex.level = This->level; in NineSurface9_CreatePipeSurfaces()
251 templ.u.tex.first_layer = This->layer; in NineSurface9_CreatePipeSurfaces()
252 templ.u.tex.last_layer = This->layer; in NineSurface9_CreatePipeSurfaces()
254 pipe = nine_context_get_pipe_acquire(This->base.base.device); in NineSurface9_CreatePipeSurfaces()
256 This->surface[0] = pipe->create_surface(pipe, resource, &templ); in NineSurface9_CreatePipeSurfaces()
260 templ.u.tex.level = This->level; in NineSurface9_CreatePipeSurfaces()
261 templ.u.tex.first_layer = This->layer; in NineSurface9_CreatePipeSurfaces()
262 templ.u.tex.last_layer = This->layer; in NineSurface9_CreatePipeSurfaces()
264 This->surface[1] = pipe->create_surface(pipe, resource, &templ); in NineSurface9_CreatePipeSurfaces()
266 nine_context_get_pipe_release(This->base.base.device); in NineSurface9_CreatePipeSurfaces()
268 assert(This->surface[0]); /* TODO: Handle failure */ in NineSurface9_CreatePipeSurfaces()
269 assert(This->surface[1]); in NineSurface9_CreatePipeSurfaces()
274 NineSurface9_Dump( struct NineSurface9 *This ) in NineSurface9_Dump() argument
282 "Level=%u(%u), Layer=%u\n", This, This->base.resource, This->data, in NineSurface9_Dump()
283 nine_D3DPOOL_to_str(This->desc.Pool), in NineSurface9_Dump()
284 nine_D3DRTYPE_to_str(This->desc.Type), in NineSurface9_Dump()
285 nine_D3DUSAGE_to_str(This->desc.Usage), in NineSurface9_Dump()
286 This->desc.Width, This->desc.Height, in NineSurface9_Dump()
287 d3dformat_to_string(This->desc.Format), This->stride, in NineSurface9_Dump()
288 This->base.resource && in NineSurface9_Dump()
289 (This->base.resource->flags & NINE_RESOURCE_FLAG_LOCKABLE), in NineSurface9_Dump()
290 This->level, This->level_actual, This->layer); in NineSurface9_Dump()
292 if (!This->base.base.container) in NineSurface9_Dump()
294 NineUnknown_QueryInterface(This->base.base.container, ref, (void **)&tex); in NineSurface9_Dump()
303 NineSurface9_GetContainer( struct NineSurface9 *This, in NineSurface9_GetContainer() argument
310 DBG("This=%p riid=%p id=%s ppContainer=%p\n", in NineSurface9_GetContainer()
311 This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppContainer); in NineSurface9_GetContainer()
318 if (!NineUnknown(This)->container) { in NineSurface9_GetContainer()
319 *ppContainer = NineUnknown(This)->device; in NineSurface9_GetContainer()
325 hr = NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer); in NineSurface9_GetContainer()
332 NineSurface9_MarkContainerDirty( struct NineSurface9 *This ) in NineSurface9_MarkContainerDirty() argument
334 if (This->texture) { in NineSurface9_MarkContainerDirty()
336 NineBaseTexture9(This->base.base.container); in NineSurface9_MarkContainerDirty()
338 assert(This->texture == D3DRTYPE_TEXTURE || in NineSurface9_MarkContainerDirty()
339 This->texture == D3DRTYPE_CUBETEXTURE); in NineSurface9_MarkContainerDirty()
340 if (This->base.pool == D3DPOOL_MANAGED) in NineSurface9_MarkContainerDirty()
343 if (This->base.usage & D3DUSAGE_AUTOGENMIPMAP) in NineSurface9_MarkContainerDirty()
351 NineSurface9_GetDesc( struct NineSurface9 *This, in NineSurface9_GetDesc() argument
355 *pDesc = This->desc; in NineSurface9_GetDesc()
361 NineSurface9_AddDirtyRect( struct NineSurface9 *This, in NineSurface9_AddDirtyRect() argument
366 DBG("This=%p box=%p\n", This, box); in NineSurface9_AddDirtyRect()
368 assert (This->base.pool != D3DPOOL_MANAGED || in NineSurface9_AddDirtyRect()
369 This->texture == D3DRTYPE_CUBETEXTURE || in NineSurface9_AddDirtyRect()
370 This->texture == D3DRTYPE_TEXTURE); in NineSurface9_AddDirtyRect()
372 if (This->base.pool == D3DPOOL_DEFAULT) in NineSurface9_AddDirtyRect()
376 dirty_rect.left = box->x << This->level_actual; in NineSurface9_AddDirtyRect()
377 dirty_rect.right = dirty_rect.left + (box->width << This->level_actual); in NineSurface9_AddDirtyRect()
378 dirty_rect.top = box->y << This->level_actual; in NineSurface9_AddDirtyRect()
379 dirty_rect.bottom = dirty_rect.top + (box->height << This->level_actual); in NineSurface9_AddDirtyRect()
381 if (This->texture == D3DRTYPE_TEXTURE) { in NineSurface9_AddDirtyRect()
383 NineTexture9(This->base.base.container); in NineSurface9_AddDirtyRect()
386 } else if (This->texture == D3DRTYPE_CUBETEXTURE) { in NineSurface9_AddDirtyRect()
388 NineCubeTexture9(This->base.base.container); in NineSurface9_AddDirtyRect()
390 NineCubeTexture9_AddDirtyRect(ctex, This->layer, &dirty_rect); in NineSurface9_AddDirtyRect()
395 NineSurface9_GetSystemMemPointer(struct NineSurface9 *This, int x, int y) in NineSurface9_GetSystemMemPointer() argument
397 unsigned x_offset = util_format_get_stride(This->base.info.format, x); in NineSurface9_GetSystemMemPointer()
399 y = util_format_get_nblocksy(This->base.info.format, y); in NineSurface9_GetSystemMemPointer()
401 assert(This->data); in NineSurface9_GetSystemMemPointer()
402 return This->data + (y * This->stride + x_offset); in NineSurface9_GetSystemMemPointer()
406 NineSurface9_LockRect( struct NineSurface9 *This, in NineSurface9_LockRect() argument
411 struct pipe_resource *resource = This->base.resource; in NineSurface9_LockRect()
416 DBG("This=%p pLockedRect=%p pRect=%p[%u..%u,%u..%u] Flags=%s\n", This, in NineSurface9_LockRect()
421 NineSurface9_Dump(This); in NineSurface9_LockRect()
424 user_assert(This->lock_count == 0, D3DERR_INVALIDCALL); in NineSurface9_LockRect()
431 user_assert(This->base.pool != D3DPOOL_DEFAULT || in NineSurface9_LockRect()
444 user_assert(This->desc.MultiSampleType == D3DMULTISAMPLE_NONE, in NineSurface9_LockRect()
447 if (pRect && This->desc.Pool == D3DPOOL_DEFAULT && in NineSurface9_LockRect()
448 util_format_is_compressed(This->base.info.format)) { in NineSurface9_LockRect()
449 const unsigned w = util_format_get_blockwidth(This->base.info.format); in NineSurface9_LockRect()
450 const unsigned h = util_format_get_blockheight(This->base.info.format); in NineSurface9_LockRect()
451 user_assert((pRect->left == 0 && pRect->right == This->desc.Width && in NineSurface9_LockRect()
452 pRect->top == 0 && pRect->bottom == This->desc.Height) || in NineSurface9_LockRect()
472 u_box_origin_2d(This->desc.Width, This->desc.Height, &box); in NineSurface9_LockRect()
474 box.z = This->layer; in NineSurface9_LockRect()
476 user_warn(This->desc.Format == D3DFMT_NULL); in NineSurface9_LockRect()
478 if (p_atomic_read(&This->pending_uploads_counter)) in NineSurface9_LockRect()
479 nine_csmt_process(This->base.base.device); in NineSurface9_LockRect()
481 if (This->data_conversion) { in NineSurface9_LockRect()
483 pLockedRect->Pitch = This->stride_conversion; in NineSurface9_LockRect()
484 pLockedRect->pBits = This->data_conversion + box.y * This->stride_conversion + in NineSurface9_LockRect()
485 util_format_get_stride(This->format_conversion, box.x); in NineSurface9_LockRect()
486 } else if (This->data) { in NineSurface9_LockRect()
492 if (is_ATI1_ATI2(This->base.info.format)) { in NineSurface9_LockRect()
493 pLockedRect->Pitch = This->desc.Width; in NineSurface9_LockRect()
494 pLockedRect->pBits = This->data + box.y * This->desc.Width + box.x; in NineSurface9_LockRect()
496 pLockedRect->Pitch = This->stride; in NineSurface9_LockRect()
497 pLockedRect->pBits = NineSurface9_GetSystemMemPointer(This, in NineSurface9_LockRect()
502 bool no_refs = !p_atomic_read(&This->base.base.bind) && in NineSurface9_LockRect()
503 !(This->base.base.container && p_atomic_read(&This->base.base.container->bind)); in NineSurface9_LockRect()
505 resource, This->level, usage); in NineSurface9_LockRect()
510 pipe = nine_context_get_pipe_acquire(This->base.base.device); in NineSurface9_LockRect()
512 pipe = NineDevice9_GetPipe(This->base.base.device); in NineSurface9_LockRect()
514 This->level, usage, &box, in NineSurface9_LockRect()
515 &This->transfer); in NineSurface9_LockRect()
517 nine_context_get_pipe_release(This->base.base.device); in NineSurface9_LockRect()
518 if (!This->transfer) { in NineSurface9_LockRect()
524 pLockedRect->Pitch = This->transfer->stride; in NineSurface9_LockRect()
528 NineSurface9_MarkContainerDirty(This); in NineSurface9_LockRect()
529 NineSurface9_AddDirtyRect(This, &box); in NineSurface9_LockRect()
532 ++This->lock_count; in NineSurface9_LockRect()
537 NineSurface9_UnlockRect( struct NineSurface9 *This ) in NineSurface9_UnlockRect() argument
540 DBG("This=%p lock_count=%u\n", This, This->lock_count); in NineSurface9_UnlockRect()
541 user_assert(This->lock_count, D3DERR_INVALIDCALL); in NineSurface9_UnlockRect()
542 if (This->transfer) { in NineSurface9_UnlockRect()
543 pipe = nine_context_get_pipe_acquire(This->base.base.device); in NineSurface9_UnlockRect()
544 pipe->transfer_unmap(pipe, This->transfer); in NineSurface9_UnlockRect()
545 nine_context_get_pipe_release(This->base.base.device); in NineSurface9_UnlockRect()
546 This->transfer = NULL; in NineSurface9_UnlockRect()
548 --This->lock_count; in NineSurface9_UnlockRect()
550 if (This->data_conversion) { in NineSurface9_UnlockRect()
552 uint8_t *dst = This->data; in NineSurface9_UnlockRect()
555 u_box_origin_2d(This->desc.Width, This->desc.Height, &box); in NineSurface9_UnlockRect()
557 pipe = NineDevice9_GetPipe(This->base.base.device); in NineSurface9_UnlockRect()
560 This->base.resource, in NineSurface9_UnlockRect()
561 This->level, in NineSurface9_UnlockRect()
569 (void) util_format_translate(This->base.info.format, in NineSurface9_UnlockRect()
570 dst, This->data ? This->stride : transfer->stride, in NineSurface9_UnlockRect()
572 This->format_conversion, in NineSurface9_UnlockRect()
573 This->data_conversion, in NineSurface9_UnlockRect()
574 This->stride_conversion, in NineSurface9_UnlockRect()
576 This->desc.Width, This->desc.Height); in NineSurface9_UnlockRect()
578 if (!This->data) in NineSurface9_UnlockRect()
585 NineSurface9_GetDC( struct NineSurface9 *This, in NineSurface9_GetDC() argument
592 NineSurface9_ReleaseDC( struct NineSurface9 *This, in NineSurface9_ReleaseDC() argument
618 /* When this function is called, we have already checked
621 NineSurface9_CopyMemToDefault( struct NineSurface9 *This, in NineSurface9_CopyMemToDefault() argument
626 struct pipe_resource *r_dst = This->base.resource; in NineSurface9_CopyMemToDefault()
630 assert(This->base.pool == D3DPOOL_DEFAULT && in NineSurface9_CopyMemToDefault()
653 u_box_2d_zslice(dst_x, dst_y, This->layer, in NineSurface9_CopyMemToDefault()
658 nine_context_box_upload(This->base.base.device, in NineSurface9_CopyMemToDefault()
660 (struct NineUnknown *)This, in NineSurface9_CopyMemToDefault()
662 This->level, in NineSurface9_CopyMemToDefault()
669 if (This->data_conversion) in NineSurface9_CopyMemToDefault()
670 (void) util_format_translate(This->format_conversion, in NineSurface9_CopyMemToDefault()
671 This->data_conversion, in NineSurface9_CopyMemToDefault()
672 This->stride_conversion, in NineSurface9_CopyMemToDefault()
679 NineSurface9_MarkContainerDirty(This); in NineSurface9_CopyMemToDefault()
683 NineSurface9_CopyDefaultToMem( struct NineSurface9 *This, in NineSurface9_CopyDefaultToMem() argument
693 assert(This->base.pool == D3DPOOL_SYSTEMMEM && in NineSurface9_CopyDefaultToMem()
696 assert(This->desc.Width == From->desc.Width); in NineSurface9_CopyDefaultToMem()
697 assert(This->desc.Height == From->desc.Height); in NineSurface9_CopyDefaultToMem()
699 u_box_origin_2d(This->desc.Width, This->desc.Height, &src_box); in NineSurface9_CopyDefaultToMem()
702 if (p_atomic_read(&This->pending_uploads_counter)) in NineSurface9_CopyDefaultToMem()
703 nine_csmt_process(This->base.base.device); in NineSurface9_CopyDefaultToMem()
705 pipe = NineDevice9_GetPipe(This->base.base.device); in NineSurface9_CopyDefaultToMem()
709 p_dst = NineSurface9_GetSystemMemPointer(This, 0, 0); in NineSurface9_CopyDefaultToMem()
713 util_copy_rect(p_dst, This->base.info.format, in NineSurface9_CopyDefaultToMem()
714 This->stride, 0, 0, in NineSurface9_CopyDefaultToMem()
715 This->desc.Width, This->desc.Height, in NineSurface9_CopyDefaultToMem()
727 NineSurface9_UploadSelf( struct NineSurface9 *This, in NineSurface9_UploadSelf() argument
730 struct pipe_resource *res = This->base.resource; in NineSurface9_UploadSelf()
733 DBG("This=%p damaged=%p\n", This, damaged); in NineSurface9_UploadSelf()
735 assert(This->base.pool == D3DPOOL_MANAGED); in NineSurface9_UploadSelf()
739 box.z = This->layer; in NineSurface9_UploadSelf()
744 box.z = This->layer; in NineSurface9_UploadSelf()
745 box.width = This->desc.Width; in NineSurface9_UploadSelf()
746 box.height = This->desc.Height; in NineSurface9_UploadSelf()
750 nine_context_box_upload(This->base.base.device, in NineSurface9_UploadSelf()
751 &This->pending_uploads_counter, in NineSurface9_UploadSelf()
752 (struct NineUnknown *)This, in NineSurface9_UploadSelf()
754 This->level, in NineSurface9_UploadSelf()
757 This->data, This->stride, in NineSurface9_UploadSelf()
773 NineSurface9_SetResource( struct NineSurface9 *This, in NineSurface9_SetResource() argument
778 assert(This->base.pool == D3DPOOL_MANAGED); in NineSurface9_SetResource()
779 This->level = level; in NineSurface9_SetResource()
780 pipe_resource_reference(&This->base.resource, resource); in NineSurface9_SetResource()
784 NineSurface9_SetMultiSampleType( struct NineSurface9 *This, in NineSurface9_SetMultiSampleType() argument
787 PROCESS_IF_BOUND(This); in NineSurface9_SetMultiSampleType()
788 This->desc.MultiSampleType = mst; in NineSurface9_SetMultiSampleType()
792 NineSurface9_SetResourceResize( struct NineSurface9 *This, in NineSurface9_SetResourceResize() argument
795 assert(This->level == 0 && This->level_actual == 0); in NineSurface9_SetResourceResize()
796 assert(!This->lock_count); in NineSurface9_SetResourceResize()
797 assert(This->desc.Pool == D3DPOOL_DEFAULT); in NineSurface9_SetResourceResize()
798 assert(!This->texture); in NineSurface9_SetResourceResize()
800 PROCESS_IF_BOUND(This); in NineSurface9_SetResourceResize()
801 pipe_resource_reference(&This->base.resource, resource); in NineSurface9_SetResourceResize()
803 This->desc.Width = This->base.info.width0 = resource->width0; in NineSurface9_SetResourceResize()
804 This->desc.Height = This->base.info.height0 = resource->height0; in NineSurface9_SetResourceResize()
805 This->base.info.nr_samples = resource->nr_samples; in NineSurface9_SetResourceResize()
807 This->stride = nine_format_get_stride(This->base.info.format, in NineSurface9_SetResourceResize()
808 This->desc.Width); in NineSurface9_SetResourceResize()
810 pipe_surface_reference(&This->surface[0], NULL); in NineSurface9_SetResourceResize()
811 pipe_surface_reference(&This->surface[1], NULL); in NineSurface9_SetResourceResize()
813 NineSurface9_CreatePipeSurfaces(This); in NineSurface9_SetResourceResize()