diff options
author | Brian Paul <[email protected]> | 2016-10-03 09:57:50 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2016-10-06 11:29:32 -0600 |
commit | 6963f94e98e9b0a1432bc0071d495c9e31b899ae (patch) | |
tree | e994485b3ff87de685b1c4bff2da2eb2466acb74 /src/mesa/state_tracker/st_sampler_view.h | |
parent | e5cc84dd43be066c1dd418e32f5ad258e31a150a (diff) |
st/mesa: move all sampler view code into new st_sampler_view.[ch] files
Previously, the sampler view code was scattered across several different
files.
Note, the previous REALLOC(), FREE() for st_texture_object::sampler_views
are replaced by realloc(), free() to avoid conflicting macros in Mesa vs.
Gallium.
Reviewed-by: Edward O'Callaghan <[email protected]>
Acked-by: Nicolai Hähnle <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_sampler_view.h')
-rw-r--r-- | src/mesa/state_tracker/st_sampler_view.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_sampler_view.h b/src/mesa/state_tracker/st_sampler_view.h new file mode 100644 index 00000000000..d4c38bccdce --- /dev/null +++ b/src/mesa/state_tracker/st_sampler_view.h @@ -0,0 +1,83 @@ +/* + * Copyright 2016 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef ST_SAMPLER_VIEW_H +#define ST_SAMPLER_VIEW_H + +#include "pipe/p_compiler.h" +#include "pipe/p_context.h" +#include "pipe/p_state.h" +#include "util/u_sampler.h" + +struct st_texture_object; + + +static inline struct pipe_sampler_view * +st_create_texture_sampler_view_format(struct pipe_context *pipe, + struct pipe_resource *texture, + enum pipe_format format) +{ + struct pipe_sampler_view templ; + + u_sampler_view_default_template(&templ, texture, format); + + return pipe->create_sampler_view(pipe, texture, &templ); +} + + +static inline struct pipe_sampler_view * +st_create_texture_sampler_view(struct pipe_context *pipe, + struct pipe_resource *texture) +{ + return st_create_texture_sampler_view_format(pipe, texture, + texture->format); +} + + +extern struct pipe_sampler_view ** +st_texture_get_sampler_view(struct st_context *st, + struct st_texture_object *stObj); + +extern void +st_texture_release_sampler_view(struct st_context *st, + struct st_texture_object *stObj); + +extern void +st_texture_release_all_sampler_views(struct st_context *st, + struct st_texture_object *stObj); + +void +st_texture_free_sampler_views(struct st_texture_object *stObj); + + +struct pipe_sampler_view * +st_get_texture_sampler_view_from_stobj(struct st_context *st, + struct st_texture_object *stObj, + const struct gl_sampler_object *samp, + unsigned glsl_version); + + +#endif /* ST_SAMPLER_VIEW_H */ |