27#define WINED3D_VIEW_CUBE_ARRAY (WINED3D_VIEW_TEXTURE_CUBE | WINED3D_VIEW_TEXTURE_ARRAY)
41 unsigned int view_flags;
72 if (view_types[
i].texture_target !=
texture->target || view_types[
i].view_flags !=
desc->flags)
74 if (gl_info->
supported[view_types[
i].extension])
75 return view_types[
i].view_target;
77 FIXME(
"Extension %#x not supported.\n", view_types[
i].extension);
80 FIXME(
"Unhandled view flags %#x for texture target %#x.\n",
desc->flags,
texture->target);
113 if (
buffer->desc.structure_byte_stride)
122 element_size =
buffer->desc.structure_byte_stride;
126 element_size =
format->byte_count;
140 unsigned int depth_or_layer_count;
145 WARN(
"Trying to create incompatible view for non typeless format %s.\n",
153 depth_or_layer_count =
texture->layer_count;
155 if (!
desc->u.texture.level_count
156 || (mip_slice &&
desc->u.texture.level_count != 1)
157 ||
desc->u.texture.level_idx >=
texture->level_count
158 ||
desc->u.texture.level_count >
texture->level_count -
desc->u.texture.level_idx
159 || !
desc->u.texture.layer_count
160 ||
desc->u.texture.layer_idx >= depth_or_layer_count
161 ||
desc->u.texture.layer_count > depth_or_layer_count -
desc->u.texture.layer_idx)
173 unsigned int layer_idx, layer_count;
177 view->target = view_target;
185 FIXME(
"OpenGL implementation does not support texture views.\n");
192 layer_idx =
desc->u.texture.layer_idx;
193 layer_count =
desc->u.texture.layer_count;
194 if (view_target ==
GL_TEXTURE_3D && (layer_idx || layer_count != 1))
196 FIXME(
"Depth slice (%u-%u) not supported.\n", layer_idx, layer_count);
201 gl_info->gl_ops.gl.p_glGenTextures(1, &
view->name);
203 desc->u.texture.level_idx,
desc->u.texture.level_count,
204 layer_idx, layer_count));
214 FIXME(
"OpenGL implementation does not support stencil texturing.\n");
238 FIXME(
"OpenGL implementation does not support buffer textures.\n");
242 if ((
offset & (gl_info->
limits.texture_buffer_offset_alignment - 1)))
244 FIXME(
"Buffer offset %u is not %u byte aligned.\n",
245 offset, gl_info->
limits.texture_buffer_offset_alignment);
252 gl_info->
gl_ops.gl.p_glGenTextures(1, &
view->name);
263 FIXME(
"OpenGL implementation does not support ARB_texture_buffer_range.\n");
279 *
size =
desc->u.buffer.count *
buffer->desc.structure_byte_stride;
301 unsigned int i, sub_resource_idx, layer_count;
312 sub_resource_idx =
desc->u.texture.layer_idx *
texture->level_count +
desc->u.texture.level_idx;
322 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
332 if (
view->gl_view.name)
340 gl_info->gl_ops.gl.p_glDeleteTextures(1, &
view->gl_view.name);
352 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
361 view->parent_ops->wined3d_object_destroyed(
view->parent);
387 return texture->sub_resources[
view->sub_resource_idx].parent;
401 return view->resource;
432 *
width = swapchain->
desc.backbuffer_width;
437 unsigned int level_idx =
view->sub_resource_idx %
texture->level_count;
450 unsigned int i, sub_resource_idx, layer_count;
460 sub_resource_idx =
view->sub_resource_idx;
470 unsigned int i, sub_resource_idx, layer_count;
480 sub_resource_idx =
view->sub_resource_idx;
489 unsigned int i, sub_resource_idx, layer_count;
499 sub_resource_idx =
view->sub_resource_idx;
523 unsigned int depth_or_layer_count;
528 depth_or_layer_count =
texture->layer_count;
531 || (
view->layer_count != 1 &&
view->layer_count != depth_or_layer_count))
533 if (
resource->format->gl_view_class !=
view->format->gl_view_class)
535 FIXME(
"Render target view not supported, resource format %s, view format %s.\n",
539 if (
texture->swapchain &&
texture->swapchain->desc.backbuffer_count > 1)
541 FIXME(
"Swapchain views not supported.\n");
558 view->parent_ops = parent_ops;
565 allow_srgb_toggle =
TRUE;
574 view->sub_resource_idx = 0;
575 view->layer_count = 1;
583 view->sub_resource_idx =
desc->u.texture.level_idx;
585 view->sub_resource_idx +=
desc->u.texture.layer_idx *
texture->level_count;
586 view->layer_count =
desc->u.texture.layer_count;
605 TRACE(
"desc %p, resource %p, parent %p, parent_ops %p, view %p.\n",
608 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
614 WARN(
"Failed to initialise view, hr %#x.\n",
hr);
618 TRACE(
"Created render target view %p.\n",
object);
630 TRACE(
"texture %p, sub_resource_idx %u, parent %p, parent_ops %p, view %p.\n",
635 desc.u.texture.level_idx = sub_resource_idx %
texture->level_count;
636 desc.u.texture.level_count = 1;
637 desc.u.texture.layer_idx = sub_resource_idx /
texture->level_count;
638 desc.u.texture.layer_count = 1;
647 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
656 if (
view->gl_view.name)
663 gl_info->gl_ops.gl.p_glDeleteTextures(1, &
view->gl_view.name);
675 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
684 view->parent_ops->wined3d_object_destroyed(
view->parent);
708 view_format =
view->format;
709 gl_info = &
resource->device->adapter->gl_info;
728 && !
desc->u.texture.level_idx &&
desc->u.texture.level_count ==
texture->level_count
729 && !
desc->u.texture.layer_idx &&
desc->u.texture.layer_count ==
texture->layer_count
732 TRACE(
"Creating identity shader resource view.\n");
734 else if (
texture->swapchain &&
texture->swapchain->desc.backbuffer_count > 1)
736 FIXME(
"Swapchain shader resource views not supported.\n");
749 FIXME(
"Shader resource view not supported, resource format %s, view format %s.\n",
753#if defined(STAGING_CSMT)
765 view->parent_ops = parent_ops;
773#if defined(STAGING_CSMT)
788 TRACE(
"desc %p, resource %p, parent %p, parent_ops %p, view %p.\n",
791 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
797 WARN(
"Failed to initialise view, hr %#x.\n",
hr);
801 TRACE(
"Created shader resource view %p.\n",
object);
815 if (
view->gl_view.name)
824 FIXME(
"Buffer shader resources not supported.\n");
865 layer_count =
view->desc.u.texture.layer_count;
866 level_count =
view->desc.u.texture.level_count;
872 for (
i = 0;
i < layer_count; ++
i)
875 if (
view->gl_view.name)
899 for (
i = 0;
i < layer_count; ++
i)
908 if (!
view->gl_view.name)
925 WARN(
"Called on buffer resource %p.\n",
view->resource);
932 WARN(
"Texture without the WINED3D_TEXTURE_GENERATE_MIPMAPS flag, ignoring.\n");
943 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
952 if (
view->gl_view.name ||
view->counter_bo)
959 if (
view->gl_view.name)
960 gl_info->gl_ops.gl.p_glDeleteTextures(1, &
view->gl_view.name);
961 if (
view->counter_bo)
974 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
983 view->parent_ops->wined3d_object_destroyed(
view->parent);
1022 FIXME(
"OpenGL implementation does not support ARB_clear_buffer_object.\n");
1052 if (!
view->counter_bo)
1069 if (!
view->counter_bo)
1075 src.buffer_object =
view->counter_bo;
1091 gl_info = &
resource->device->adapter->gl_info;
1103 static const GLuint initial_value = 0;
1115 unsigned int depth_or_layer_count;
1120 depth_or_layer_count =
texture->layer_count;
1122 if (
desc->u.texture.layer_idx ||
desc->u.texture.layer_count != depth_or_layer_count)
1128#if defined(STAGING_CSMT)
1140 view->parent_ops = parent_ops;
1148#if defined(STAGING_CSMT)
1163 TRACE(
"desc %p, resource %p, parent %p, parent_ops %p, view %p.\n",
1166 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
1172 WARN(
"Failed to initialise view, hr %#x.\n",
hr);
1176 TRACE(
"Created unordered access view %p.\n",
object);
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void wined3d_cs_destroy_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
void wined3d_cs_emit_generate_mipmaps(struct wined3d_cs *cs, struct wined3d_shader_resource_view *view)
void wined3d_cs_init_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
DWORD wined3d_buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_bo_address *data, DWORD locations)
void *CDECL wined3d_buffer_get_parent(const struct wined3d_buffer *buffer)
BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, struct wined3d_context *context, DWORD location)
void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD location)
void context_bind_bo(struct wined3d_context *context, GLenum binding, GLuint name)
struct wined3d_context * context_acquire(const struct wined3d_device *device, struct wined3d_texture *texture, unsigned int sub_resource_idx)
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, unsigned int unit)
void context_invalidate_compute_state(struct wined3d_context *context, DWORD state_id)
void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name)
void context_invalidate_state(struct wined3d_context *context, DWORD state)
void context_copy_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *dst, GLenum dst_binding, const struct wined3d_bo_address *src, GLenum src_binding, size_t size)
void context_release(struct wined3d_context *context)
void context_gl_resource_released(struct wined3d_device *device, GLuint name, BOOL rb_namespace)
void wined3d_texture_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
BOOL wined3d_texture_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location)
void wined3d_texture_invalidate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, DWORD location)
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location)
void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb)
void wined3d_texture_validate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, DWORD location)
const struct wined3d_format * wined3d_get_format(const struct wined3d_gl_info *gl_info, enum wined3d_format_id format_id, unsigned int resource_usage)
const char * debug_d3dformat(enum wined3d_format_id format_id)
const char * debug_d3dresourcetype(enum wined3d_resource_type resource_type)
BOOL wined3d_formats_are_srgb_variants(enum wined3d_format_id format1, enum wined3d_format_id format2)
BOOL wined3d_format_is_depth_view(enum wined3d_format_id resource_format_id, enum wined3d_format_id view_format_id)
static void wined3d_shader_resource_view_destroy_object(void *object)
void wined3d_rendertarget_view_prepare_location(struct wined3d_rendertarget_view *view, struct wined3d_context *context, DWORD location)
static void get_buffer_view_range(const struct wined3d_buffer *buffer, const struct wined3d_view_desc *desc, const struct wined3d_format *view_format, unsigned int *offset, unsigned int *size)
HRESULT CDECL wined3d_shader_resource_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader_resource_view **view)
void wined3d_unordered_access_view_copy_counter(struct wined3d_unordered_access_view *view, struct wined3d_buffer *buffer, unsigned int offset, struct wined3d_context *context)
static void wined3d_unordered_access_view_destroy_object(void *object)
void CDECL wined3d_shader_resource_view_generate_mipmaps(struct wined3d_shader_resource_view *view)
static void wined3d_view_invalidate_location(struct wined3d_resource *resource, const struct wined3d_view_desc *desc, DWORD location)
#define WINED3D_VIEW_CUBE_ARRAY
static void wined3d_rendertarget_view_destroy_object(void *object)
void wined3d_unordered_access_view_clear_uint(struct wined3d_unordered_access_view *view, const struct wined3d_uvec4 *clear_value, struct wined3d_context *context)
void wined3d_shader_resource_view_bind(struct wined3d_shader_resource_view *view, unsigned int unit, struct wined3d_sampler *sampler, struct wined3d_context *context)
void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_access_view *view, DWORD location)
HRESULT CDECL wined3d_rendertarget_view_create_from_sub_resource(struct wined3d_texture *texture, unsigned int sub_resource_idx, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
HRESULT CDECL wined3d_unordered_access_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_unordered_access_view **view)
static void create_texture_view(struct wined3d_gl_view *view, GLenum view_target, const struct wined3d_view_desc *desc, struct wined3d_texture *texture, const struct wined3d_format *view_format)
void wined3d_rendertarget_view_invalidate_location(struct wined3d_rendertarget_view *view, DWORD location)
ULONG CDECL wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view *view)
void wined3d_rendertarget_view_load_location(struct wined3d_rendertarget_view *view, struct wined3d_context *context, DWORD location)
static GLenum get_texture_view_target(const struct wined3d_gl_info *gl_info, const struct wined3d_view_desc *desc, const struct wined3d_texture *texture)
HRESULT CDECL wined3d_rendertarget_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void *CDECL wined3d_shader_resource_view_get_parent(const struct wined3d_shader_resource_view *view)
static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_access_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_rendertarget_view_get_drawable_size(const struct wined3d_rendertarget_view *view, const struct wined3d_context *context, unsigned int *width, unsigned int *height)
ULONG CDECL wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view)
void *CDECL wined3d_rendertarget_view_get_parent(const struct wined3d_rendertarget_view *view)
void CDECL wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, void *parent)
void *CDECL wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view)
static void wined3d_shader_resource_view_cs_init(void *object)
static void create_buffer_view(struct wined3d_gl_view *view, struct wined3d_context *context, const struct wined3d_view_desc *desc, struct wined3d_buffer *buffer, const struct wined3d_format *view_format)
ULONG CDECL wined3d_unordered_access_view_incref(struct wined3d_unordered_access_view *view)
static void wined3d_render_target_view_cs_init(void *object)
static void create_buffer_texture(struct wined3d_gl_view *view, struct wined3d_context *context, struct wined3d_buffer *buffer, const struct wined3d_format *view_format, unsigned int offset, unsigned int size)
void shader_resource_view_generate_mipmaps(struct wined3d_shader_resource_view *view)
static void shader_resource_view_bind_and_dirtify(struct wined3d_shader_resource_view *view, struct wined3d_context *context)
static const struct wined3d_format * validate_resource_view(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, BOOL mip_slice, BOOL allow_srgb_toggle)
static void wined3d_unordered_access_view_cs_init(void *object)
static BOOL is_stencil_view_format(const struct wined3d_format *format)
static HRESULT wined3d_rendertarget_view_init(struct wined3d_rendertarget_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void *CDECL wined3d_unordered_access_view_get_parent(const struct wined3d_unordered_access_view *view)
struct wined3d_resource *CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view)
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
void wined3d_rendertarget_view_validate_location(struct wined3d_rendertarget_view *view, DWORD location)
void wined3d_unordered_access_view_set_counter(struct wined3d_unordered_access_view *view, unsigned int value)
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
#define GL_TEXTURE_CUBE_MAP
#define GL_TEXTURE_BASE_LEVEL
#define GL_TEXTURE_MAX_LEVEL
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
#define GL_SKIP_DECODE_EXT
#define GL_ATOMIC_COUNTER_BUFFER
#define GL_TEXTURE_SRGB_DECODE_EXT
#define GL_TEXTURE_BUFFER
#define GL_TEXTURE_SWIZZLE_RGBA
#define GL_TEXTURE_RECTANGLE
#define GL_TEXTURE_1D_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE
#define GL_TEXTURE_CUBE_MAP_ARRAY
#define GL_TEXTURE_2D_ARRAY
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define location(file, line)
static const WCHAR desc[]
png_const_structrp png_const_inforp int * unit
void wined3d_sampler_bind(struct wined3d_sampler *sampler, unsigned int unit, struct wined3d_texture *texture, const struct wined3d_context *context)
struct wined3d_sampler_desc sampler_desc
const struct wined3d_gl_info * gl_info
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
struct wined3d_gl_limits limits
struct wined3d_fbo_ops fbo_ops
const struct wined3d_parent_ops * parent_ops
unsigned int sub_resource_idx
int offscreen_rendering_mode
const struct wined3d_parent_ops * parent_ops
struct wined3d_swapchain_desc desc
const struct wined3d_parent_ops * parent_ops
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
#define GL_DEPTH_STENCIL_TEXTURE_MODE
#define WINED3D_VIEW_TEXTURE_CUBE
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_3D
#define WINED3D_VIEW_TEXTURE_ARRAY
#define WINED3D_VIEW_BUFFER_RAW
@ WINED3DFMT_X24_TYPELESS_G8_UINT
@ WINED3DFMT_R32G32B32A32_UINT
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
@ WINED3DFMT_R32_TYPELESS
@ WINED3DFMT_R32G32B32A32_SINT
#define WINED3D_VIEW_BUFFER_APPEND
#define WINED3D_VIEW_BUFFER_COUNTER
#define WINED3D_SRGB_READ_WRITE_CONTROL
@ ARB_TEXTURE_BUFFER_OBJECT
@ ARB_CLEAR_BUFFER_OBJECT
@ ARB_TEXTURE_BUFFER_RANGE
@ ARB_TEXTURE_CUBE_MAP_ARRAY
static BOOL wined3d_format_is_typeless(const struct wined3d_format *format)
static unsigned int wined3d_texture_get_level_height(const struct wined3d_texture *texture, unsigned int level)
#define WINED3D_TEXTURE_GENERATE_MIPMAPS
#define WINED3D_LOCATION_TEXTURE_SRGB
static unsigned int wined3d_texture_get_level_pow2_height(const struct wined3d_texture *texture, unsigned int level)
#define STATE_GRAPHICS_SHADER_RESOURCE_BINDING
static void wined3d_resource_acquire(struct wined3d_resource *resource)
static unsigned int wined3d_texture_get_level_width(const struct wined3d_texture *texture, unsigned int level)
#define WINED3D_LOCATION_BUFFER
static unsigned int wined3d_texture_get_level_pow2_width(const struct wined3d_texture *texture, unsigned int level)
static ULONG wined3d_resource_decref(struct wined3d_resource *resource)
#define STATE_SAMPLER(num)
static void wined3d_resource_release(struct wined3d_resource *resource)
#define STATE_COMPUTE_SHADER_RESOURCE_BINDING
#define WINED3D_LOCATION_TEXTURE_RGB
static GLuint wined3d_texture_get_texture_name(const struct wined3d_texture *texture, const struct wined3d_context *context, BOOL srgb)
static ULONG wined3d_resource_incref(struct wined3d_resource *resource)
static struct gl_texture * wined3d_texture_get_gl_texture(struct wined3d_texture *texture, BOOL srgb)
#define WINED3D_UNMAPPED_STAGE
static struct wined3d_texture * texture_from_resource(struct wined3d_resource *resource)
static struct wined3d_buffer * buffer_from_resource(struct wined3d_resource *resource)
#define WINED3D_TEXTURE_IS_SRGB
static unsigned int wined3d_texture_get_level_depth(const struct wined3d_texture *texture, unsigned int level)