Home | History | Annotate | Download | only in softpipe

Lines Matching refs:spr

55                          struct softpipe_resource *spr)
57 struct pipe_resource *pt = &spr->base;
74 spr->stride[level] = util_format_get_stride(pt->format, width);
76 spr->level_offset[level] = buffer_size;
79 slices * spr->stride[level]);
86 spr->data = align_malloc(buffer_size, 16);
88 return spr->data != NULL;
97 struct softpipe_resource *spr)
103 spr->dt = winsys->displaytarget_create(winsys,
104 spr->base.bind,
105 spr->base.format,
106 spr->base.width0,
107 spr->base.height0,
109 &spr->stride[0] );
111 return spr->dt != NULL;
122 struct softpipe_resource *spr = CALLOC_STRUCT(softpipe_resource);
123 if (!spr)
128 spr->base = *templat;
129 pipe_reference_init(&spr->base.reference, 1);
130 spr->base.screen = screen;
132 spr->pot = (util_is_power_of_two(templat->width0) &&
136 if (spr->base.bind & (PIPE_BIND_DISPLAY_TARGET |
139 if (!softpipe_displaytarget_layout(screen, spr))
143 if (!softpipe_resource_layout(screen, spr))
147 return &spr->base;
150 FREE(spr);
160 struct softpipe_resource *spr = softpipe_resource(pt);
162 if (spr->dt) {
165 winsys->displaytarget_destroy(winsys, spr->dt);
167 else if (!spr->userBuffer) {
169 align_free(spr->data);
172 FREE(spr);
182 struct softpipe_resource *spr = CALLOC_STRUCT(softpipe_resource);
183 if (!spr)
186 spr->base = *templat;
187 pipe_reference_init(&spr->base.reference, 1);
188 spr->base.screen = screen;
190 spr->pot = (util_is_power_of_two(templat->width0) &&
194 spr->dt = winsys->displaytarget_from_handle(winsys,
197 &spr->stride[0]);
198 if (!spr->dt)
201 return &spr->base;
204 FREE(spr);
215 struct softpipe_resource *spr = softpipe_resource(pt);
217 assert(spr->dt);
218 if (!spr->dt)
221 return winsys->displaytarget_get_handle(winsys, spr->dt, whandle);
230 sp_get_tex_image_offset(const struct softpipe_resource *spr,
233 const unsigned hgt = u_minify(spr->base.height0, level);
234 const unsigned nblocksy = util_format_get_nblocksy(spr->base.format, hgt);
235 unsigned offset = spr->level_offset[level];
237 if (spr->base.target == PIPE_TEXTURE_CUBE ||
238 spr->base.target == PIPE_TEXTURE_3D ||
239 spr->base.target == PIPE_TEXTURE_2D_ARRAY) {
240 offset += layer * nblocksy * spr->stride[level];
242 else if (spr->base.target == PIPE_TEXTURE_1D_ARRAY) {
243 offset += layer * spr->stride[level];
318 struct softpipe_resource *spr = softpipe_resource(resource);
367 const unsigned hgt = u_minify(spr->base.height0, level);
374 pt->stride = spr->stride[level];
377 spt->offset = sp_get_tex_image_offset(spr, level, box->z);
410 struct softpipe_resource *spr = softpipe_resource(transfer->resource);
416 if (spr->dt) {
417 map = winsys->displaytarget_map(winsys, spr->dt, transfer->usage);
420 map = spr->data;
437 struct softpipe_resource *spr;
440 spr = softpipe_resource(transfer->resource);
442 if (spr->dt) {
445 winsys->displaytarget_unmap(winsys, spr->dt);
450 spr->timestamp++;
463 struct softpipe_resource *spr;
465 spr = CALLOC_STRUCT(softpipe_resource);
466 if (!spr)
469 pipe_reference_init(&spr->base.reference, 1);
470 spr->base.screen = screen;
471 spr->base.format = PIPE_FORMAT_R8_UNORM; /* ?? */
472 spr->base.bind = bind_flags;
473 spr->base.usage = PIPE_USAGE_IMMUTABLE;
474 spr->base.flags = 0;
475 spr->base.width0 = bytes;
476 spr->base.height0 = 1;
477 spr->base.depth0 = 1;
478 spr->base.array_size = 1;
479 spr->userBuffer = TRUE;
480 spr->data = ptr;
482 return &spr->base;