diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-09-05 18:29:51 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-05 18:49:14 +0300 |
commit | c766d9b9dc5661693a58e01a3637f15197c2fe59 (patch) | |
tree | 6905f0fc085af0eff5cfdf74d87c4ebed412e741 /source/blender/gpu/intern/gpu_state_private.hh | |
parent | db21c12abedd7606a3aaf50f70e506a24d9f0e7a (diff) |
GPUTexture: GL Backend Isolation
This is a massive cleanup needed for vulkan support T68990. It provides:
- More meaningful enums with conversion functions.
- Less hacky supports of arrays and cubemaps (all considered layered).
- More inline with the stateless design of vulkan and modern GL.
- Methods Fallbacks are using framebuffer functions that are wrapped
instead of implementing inside the texture module.
What is not in there:
- API change.
- Samplers support (breaks a few effects).
# Conflicts:
# source/blender/gpu/GPU_texture.h
Diffstat (limited to 'source/blender/gpu/intern/gpu_state_private.hh')
-rw-r--r-- | source/blender/gpu/intern/gpu_state_private.hh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_state_private.hh b/source/blender/gpu/intern/gpu_state_private.hh index 61234c4612c..6ce240df108 100644 --- a/source/blender/gpu/intern/gpu_state_private.hh +++ b/source/blender/gpu/intern/gpu_state_private.hh @@ -26,6 +26,8 @@ #include "GPU_state.h" +#include "gpu_texture_private.hh" + #include <cstring> namespace blender { @@ -160,6 +162,10 @@ class GPUStateManager { virtual ~GPUStateManager(){}; virtual void apply_state(void) = 0; + + virtual void texture_bind(Texture *tex, eGPUSamplerState sampler, int unit) = 0; + virtual void texture_unbind(Texture *tex) = 0; + virtual void texture_unbind_all(void) = 0; }; } // namespace gpu |