25 #ifndef __PERPIXEL_PROCESSING_BASE_HH__
26 #define __PERPIXEL_PROCESSING_BASE_HH__
28 #include <OpenGLFramework/Base/glfTexture2D.hh>
29 #include <OpenGLFramework/Base/glfBatch.hh>
30 #include <OpenGLFramework/Base/glfScreen.hh>
31 #include <OpenGLFramework/Base/glfFramebufferObject.hh>
32 #include <OpenGLFramework/Utils/Primitives.hh>
34 #include <bias_config.h>
53 viewport_.SetSize(width, height);
54 viewport_.SetOrigin(0, 0);
58 return viewport_.GetWidth();
61 return viewport_.GetHeight();
65 if (renderTargetCreated_) {
66 delete renderTargetP_;
67 if (zBufferP_ != NULL)
69 if (textureP_ != NULL)
71 renderTargetP_ = NULL;
76 renderTargetP_ = renderTarget;
77 batch_.SetRenderTarget(renderTarget);
79 renderTargetCreated_ =
false;
83 const std::string& fragmentShaderCode);
86 const std::string& fragmentShaderPath);
90 if (renderTargetCreated_) {
91 delete renderTargetP_;
92 if (zBufferP_ != NULL)
94 if (textureP_ != NULL)
96 renderTargetP_ = NULL;
100 renderTargetCreated_ =
false;
105 batch_.SetShaderProgram(NULL);
108 void SetDefaultFloatRenderTarget(
unsigned int width,
unsigned height);
109 void SetDefaultRGBRenderTarget(
unsigned int width,
unsigned height);
110 void SetDefaultRenderTarget(
unsigned int width,
unsigned height, GLenum internalFormat=GL_LUMINANCE32F_ARB);
120 if (textureP_ != NULL) {
121 textureP_->CopyToImage(texture);
130 return renderTargetP_;
135 batch_.SetElementBuffer(&elements_);
136 batch_.SetVertexBuffer(&vertices_);
137 batch_.SetViewport(&viewport_);
138 batch_.SetModelViewMatrix(&modelViewMatrix_);
139 batch_.SetProjectionMatrix(&projectionMatrix_);
140 batch_.SetDepthBufferMode(&depthBufferMode_);
142 depthBufferMode_.SetDepthTest(
true);
144 InitPrimitiveData_();
145 InitVertexTransformation_();
153 modelViewMatrix_.MakeIdentity();
154 projectionMatrix_.MakeIdentity();
173 return &depthBufferMode_;
177 return fragmentShaderP_;
181 return shaderProgramP_;
184 bool renderTargetCreated_;
An element buffer contains vertex indices that form primitives.
void ActivateFixedFunctionPipeline()
Defines the usage of the depth buffer.
void SetViewPort(unsigned int width, unsigned int height)
glfTexture2D * GetZBufferFromDefaultRenderTarget()
glfShaderProgram * GetShaderProgram_()
unsigned int GetViewportHeight()
int GetTextureFromDefaultRenderTarget(ImageBase &texture)
A vertex buffer contains an array of vertices that can be used for rendering.
A batch represents a single Draw call including all parameters (render states).
unsigned int GetViewportWidth()
A shader program composed of several shaders.
A GLSL vertex shader or fragment shader, which must be linked in a shader program.
void InitVertexTransformation_()
glfDepthBufferMode * GetDepthBufferMode_()
static glfScreen & GetInstance()
Returns the global screen instance.
class for setting viewports
glfFramebufferObject * GetRenderTarget()
void InitPrimitiveData_()
static void PlainQuad2DWithTexture2D(BIAS::glfVertexBuffer &vb, BIAS::glfElementBuffer &eb, bool flip=false)
Vertex Order: 3–2 | | 0–1 .
A 4x4 matrix in native OpenGL format.
this class can be used as a simple base class for specialized batches
glfViewport * GetViewport_()
glfTexture2D * GetTextureFromDefaultRenderTarget()
void SetRenderTarget(glfFramebufferObject *renderTarget)
This is the base class for images in BIAS.