dlls/wined3d/volume.c
/* Context activation is done by the caller. */
Context activation is done by the caller.
Context activation is done by the caller .
static void volume_bind_and_dirtify(const struct wined3d_volume *volume, struct wined3d_context *context)
{
    struct wined3d_texture *container = volume->container;
    DWORD active_sampler;
    active_sampler = volume->resource.device->rev_tex_unit_map[context->active_texture];
    if (active_sampler != WINED3D_UNMAPPED_STAGE)
        device_invalidate_state(volume->resource.device, STATE_SAMPLER(active_sampler));
    container->texture_ops->texture_bind(container, context, FALSE);
}
static void volume_bind_and_dirtify ( const struct wined3d_volume * volume , struct wined3d_context * context ) { struct wined3d_texture * container = volume -> container ; DWORD active_sampler ; active_sampler = volume -> resource . device -> rev_tex_unit_map [ context -> active_texture ] ; if ( active_sampler != WINED3D_UNMAPPED_STAGE ) device_invalidate_state ( volume -> resource . device , STATE_SAMPLER ( active_sampler ) ) ; container -> texture_ops -> texture_bind ( container , context , FALSE ) ; }
Context activation is done by the caller.
Context activation is done by the caller .
/* We don't need a specific texture unit, but after binding the texture the current unit is dirty.
     * Read the unit back instead of switching to 0, this avoids messing around with the state manager's
     * gl states. The current texture unit should always be a valid one.
     *
     * To be more specific, this is tricky because we can implicitly be called
     * from sampler() in state.c. This means we can't touch anything other than
     * whatever happens to be the currently active texture, or we would risk
     * marking already applied sampler states dirty again. */