summaryrefslogtreecommitdiff
path: root/vcl/inc/opengl/program.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/inc/opengl/program.hxx')
-rw-r--r--vcl/inc/opengl/program.hxx122
1 files changed, 0 insertions, 122 deletions
diff --git a/vcl/inc/opengl/program.hxx b/vcl/inc/opengl/program.hxx
deleted file mode 100644
index b69eb0282c88..000000000000
--- a/vcl/inc/opengl/program.hxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_VCL_INC_OPENGL_PROGRAM_H
-#define INCLUDED_VCL_INC_OPENGL_PROGRAM_H
-
-#include <sal/config.h>
-
-#include <vector>
-
-#include <vcl/dllapi.h>
-
-#include <basegfx/point/b2dpoint.hxx>
-#include <rtl/ustring.hxx>
-#include <opengl/texture.hxx>
-
-#include <unordered_map>
-
-class Color;
-
-enum class TextureShaderType
-{
- Normal = 0,
- Blend,
- Masked,
- Diff,
- MaskedColor
-};
-
-enum class DrawShaderType
-{
- Normal = 0,
- Line
-};
-
-class OpenGLProgram
-{
-private:
- GLuint mnId;
- std::unordered_map< OString, GLuint >
- maUniformLocations;
- sal_uInt32 mnEnabledAttribs;
- GLuint mnPositionAttrib;
- GLuint mnTexCoordAttrib;
- GLuint mnAlphaCoordAttrib;
- GLuint mnMaskCoordAttrib;
- GLuint mnExtrusionVectorsAttrib;
- GLuint mnVertexColorsAttrib;
-
- std::vector< OpenGLTexture > maTextures;
- bool mbBlending;
-
- float mfLastWidth;
- float mfLastHeight;
- float mfLastPixelOffset;
-
-
- OpenGLProgram(const OpenGLProgram &) = delete;
-public:
- OpenGLProgram();
- ~OpenGLProgram();
-
- GLuint Id() { return mnId; }
-
- bool Load( const OUString& rVertexShader, const OUString& rFragmentShader,
- const OString& preamble, const OString& rDigest );
- void Use();
- void Reuse();
- void Clean();
-
- void SetVertices( const GLvoid* pData );
- void SetTextureCoord( const GLvoid* pData );
- void SetAlphaCoord( const GLvoid* pData );
- void SetMaskCoord(const GLvoid* pData);
- void SetExtrusionVectors(const GLvoid* pData);
- void SetVertexColors(std::vector<GLubyte>& rColorVector);
-
- void SetUniform1f( const OString& rName, GLfloat v1 );
- void SetUniform2f( const OString& rName, GLfloat v1, GLfloat v2 );
- void SetUniform1fv( const OString& rName, GLsizei nCount, GLfloat const * aValues );
- void SetUniform2fv( const OString& rName, GLsizei nCount, GLfloat const * aValues );
- void SetUniform1i( const OString& rName, GLint v1 );
- void SetColor( const OString& rName, const Color& rColor );
- void SetColor( const OString& rName, Color nColor, sal_uInt8 nTransparency );
- void SetColorf( const OString& rName, Color nColor, double fTransparency );
- void SetColorWithIntensity( const OString& rName, const Color& rColor, tools::Long nFactor );
- void SetTexture( const OString& rName, OpenGLTexture& rTexture );
- void SetTransform( const OString& rName, const OpenGLTexture& rTexture,
- const basegfx::B2DPoint& rNull, const basegfx::B2DPoint& rX,
- const basegfx::B2DPoint& rY );
- void SetIdentityTransform(const OString& rName);
- void SetShaderType(TextureShaderType eTextureShaderType);
- void SetShaderType(DrawShaderType eDrawShaderType);
-
- void SetBlendMode( GLenum nSFactor, GLenum nDFactor );
-
- void ApplyMatrix(float fWidth, float fHeight, float fPixelOffset = 0.0f);
-
- void DrawTexture( const OpenGLTexture& rTexture );
-
- void DrawArrays(GLenum aMode, std::vector<GLfloat>& aVertices);
- void DrawElements(GLenum aMode, GLuint nNumberOfVertices);
-
- bool EnableVertexAttrib(GLuint& rAttrib, const OString& rName);
-
- void SetVertexAttrib(GLuint& rAttrib, const OString& rName, GLint nSize,
- GLenum eType, GLboolean bNormalized, GLsizei aStride,
- const GLvoid* pPointer);
-
-private:
- GLuint GetUniformLocation( const OString& rName );
-};
-
-#endif // INCLUDED_VCL_INC_OPENGL_PROGRAM_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */