[PATCH 5/6] wined3d: Implement manual mipmap generation.
Henri Verbeet
hverbeet at gmail.com
Tue Dec 5 10:42:50 CST 2017
On 4 December 2017 at 20:37, Matteo Bruni <mbruni at codeweavers.com> wrote:
> +void shader_resource_view_generate_mipmaps(struct wined3d_shader_resource_view *view)
> +{
> + struct wined3d_texture *texture = texture_from_resource(view->resource);
> + unsigned int i, j, layer_count, level_count, base_level, max_level;
> + const struct wined3d_gl_info *gl_info;
> + struct wined3d_context *context;
> + struct gl_texture *gl_tex;
> + DWORD location;
> + BOOL srgb;
> +
> + TRACE("view %p.\n", view);
> +
> + wined3d_from_cs(view->resource->device->cs);
> +
> + context = context_acquire(view->resource->device, NULL, 0);
> + gl_info = context->gl_info;
> + layer_count = view->desc.u.texture.layer_count;
> + level_count = view->desc.u.texture.level_count;
> + base_level = view->desc.u.texture.level_idx;
> + max_level = base_level + level_count - 1;
> +
> + srgb = !!(texture->flags & WINED3D_TEXTURE_IS_SRGB);
The "!!" should be superfluous, strictly speaking.
> + if (srgb)
> + texture->texture_srgb.base_level = base_level;
> + else
> + texture->texture_rgb.base_level = base_level;
I.e., "gl_tex->base_level = base_level;"
More information about the wine-devel
mailing list