Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
GLGraphicsPipeline.hpp
1#pragma once
2
3#include <Common/Graphics/GraphicsPipeline.hpp>
4
5namespace Grindstone::GraphicsAPI::OpenGL {
6 class GraphicsPipeline : public Grindstone::GraphicsAPI::GraphicsPipeline {
7 public:
8 GraphicsPipeline(const CreateInfo& createInfo);
9 void Bind();
10 GLuint GetPrimitiveType();
11 ~GraphicsPipeline();
12 private:
13 void CreatePipeline(const CreateInfo& createInfo);
14 GLuint CreateShaderModule(const ShaderStageData& shaderStageCreateInfo);
15
16 GLuint program;
17
18 GLsizei width, height;
19 GLint scissorX, scissorY;
20 GLsizei scissorWidth, scissorHeight;
21
22 GLboolean colorMaskRed = GL_TRUE;
23 GLboolean colorMaskBlue = GL_TRUE;
24 GLboolean colorMaskGreen = GL_TRUE;
25 GLboolean colorMaskAlpha = GL_TRUE;
26 GLuint primitiveType;
27 GLenum polygonFillMode;
28 GLenum depthCompareOp;
29 bool isDepthTestEnabled = true;
30 GLboolean isDepthWriteEnabled = GL_TRUE;
31 bool isStencilEnabled = false;
32 bool isDepthBiasEnabled = false;
33 bool isDepthClampEnabled = false;
34
35 float depthBiasConstantFactor = 1.25f;
36 float depthBiasSlopeFactor = 1.75f;
37 float depthBiasClamp = 0.0f;
38
39 GLenum cullMode;
40 GLenum blendColorOp;
41 GLenum blendColorSrc;
42 GLenum blendColorDst;
43 GLenum blendAlphaOp;
44 GLenum blendAlphaSrc;
45 GLenum blendAlphaDst;
46 };
47}
Definition GraphicsPipeline.hpp:19