mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-11-25 09:44:02 +00:00
68b3c61852
This will eventually handle all mutable state during rendering
43 lines
813 B
C++
43 lines
813 B
C++
#ifndef BBGE_RENDERSTATE_H
|
|
#define BBGE_RENDERSTATE_H
|
|
|
|
#include "Vector.h"
|
|
#include "EngineEnums.h"
|
|
|
|
struct CombinedRenderAndGPUState;
|
|
|
|
// Only once of these exists at any time.
|
|
// It stores the known GPU state so that we don't need so many futile state changes
|
|
struct GPUState
|
|
{
|
|
friend struct CombinedRenderAndGPUState;
|
|
GPUState();
|
|
|
|
void setBlend(BlendType bt);
|
|
|
|
private:
|
|
BlendType _blendType;
|
|
};
|
|
|
|
// The RenderState is passed through the scene graph as each layer is rendered
|
|
// TODO: what needs to end up here? matrix stack too?
|
|
struct RenderState
|
|
{
|
|
GPUState& gpu;
|
|
|
|
Vector color;
|
|
float alpha;
|
|
|
|
protected:
|
|
RenderState(GPUState& gpu);
|
|
};
|
|
|
|
struct CombinedRenderAndGPUState : public RenderState
|
|
{
|
|
GPUState gpu;
|
|
CombinedRenderAndGPUState() : RenderState(gpu) {}
|
|
};
|
|
|
|
|
|
|
|
#endif
|