Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/intern/gpu_state_private.hh')
-rw-r--r--source/blender/gpu/intern/gpu_state_private.hh16
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/gpu/intern/gpu_state_private.hh b/source/blender/gpu/intern/gpu_state_private.hh
index 9fee45e7bd4..b8d247ec175 100644
--- a/source/blender/gpu/intern/gpu_state_private.hh
+++ b/source/blender/gpu/intern/gpu_state_private.hh
@@ -98,9 +98,6 @@ union GPUStateMutable {
/* Viewport State */
/** TODO remove */
float depth_range[2];
- /** TODO remove, use explicit clear calls. */
- float clear_color[4];
- float clear_depth;
/** Negative if using program point size. */
/* TODO(fclem) should be passed as uniform to all shaders. */
float point_size;
@@ -152,21 +149,28 @@ inline GPUStateMutable operator~(const GPUStateMutable &a)
* State manager keeping track of the draw state and applying it before drawing.
* Base class which is then specialized for each implementation (GL, VK, ...).
**/
-class GPUStateManager {
+class StateManager {
public:
GPUState state;
GPUStateMutable mutable_state;
public:
- GPUStateManager();
- virtual ~GPUStateManager(){};
+ StateManager();
+ virtual ~StateManager(){};
virtual void apply_state(void) = 0;
+ virtual void force_state(void) = 0;
+
+ virtual void issue_barrier(eGPUBarrier barrier_bits) = 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;
+ virtual void image_bind(Texture *tex, int unit) = 0;
+ virtual void image_unbind(Texture *tex) = 0;
+ virtual void image_unbind_all(void) = 0;
+
virtual void texture_unpack_row_length_set(uint len) = 0;
};