[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