2018-06-12 14:44:58 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "tflags.h"
|
|
|
|
|
|
|
|
// A render queue is what contains all render commands.
|
|
|
|
// On Vulkan there can be several of them so this interface is needed to allow for the needed parallelism.
|
|
|
|
// On OpenGL the render state is global so all this will do is to translate the system independent calls into OpenGL API calls.
|
|
|
|
|
|
|
|
enum class ColormaskBits
|
|
|
|
{
|
|
|
|
RED = 1,
|
|
|
|
GREEN = 2,
|
|
|
|
BLUE = 4,
|
|
|
|
ALPHA = 8
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef TFlags<ColormaskBits, uint8_t> Colormask;
|
|
|
|
|
|
|
|
class IRenderQueue
|
|
|
|
{
|
2018-06-13 22:08:55 +02:00
|
|
|
Colormask mColorMask;
|
2018-06-12 14:44:58 +02:00
|
|
|
|
|
|
|
|
2018-06-13 22:08:55 +02:00
|
|
|
Colormask GetColorMask() const
|
|
|
|
{
|
|
|
|
return mColorMask;
|
|
|
|
}
|
2018-06-12 14:44:58 +02:00
|
|
|
|
2018-06-13 22:08:55 +02:00
|
|
|
virtual void SetColorMask(Colormask mask) = 0;
|
2018-06-12 14:44:58 +02:00
|
|
|
|
|
|
|
|
|
|
|
};
|