irrlicht/source/Irrlicht/COpenGLCacheHandler.cpp
Desour f5c6d3e945 Reformat the code, using:
find -type f |  # list all regular files
  grep -E '\.(h|cpp|mm)$' |  # filter for source files
  grep -v '/mt_' |  # filter out generated files
  grep -v '/vendor/' | # and vendored GL
  grep -v '/test/image_loader_test.cpp' |  # and this file (has giant literals arrays)
  xargs -n 1 -P $(nproc) clang-format -i  # reformat everything

Co-authored-by: numzero <numzer0@yandex.ru>
2024-03-21 22:08:26 +01:00

124 lines
2.7 KiB
C++

// Copyright (C) 2015 Patryk Nadrowski
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in Irrlicht.h
#include "COpenGLCacheHandler.h"
#ifdef _IRR_COMPILE_WITH_OPENGL_
#include "COpenGLDriver.h"
namespace irr
{
namespace video
{
/* COpenGLCacheHandler */
COpenGLCacheHandler::COpenGLCacheHandler(COpenGLDriver *driver) :
COpenGLCoreCacheHandler<COpenGLDriver, COpenGLTexture>(driver), AlphaMode(GL_ALWAYS), AlphaRef(0.f), AlphaTest(false),
MatrixMode(GL_MODELVIEW), ClientActiveTexture(GL_TEXTURE0), ClientStateVertex(false),
ClientStateNormal(false), ClientStateColor(false), ClientStateTexCoord0(false)
{
// Initial OpenGL values from specification.
glAlphaFunc(AlphaMode, AlphaRef);
glDisable(GL_ALPHA_TEST);
glMatrixMode(MatrixMode);
Driver->irrGlClientActiveTexture(ClientActiveTexture);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
COpenGLCacheHandler::~COpenGLCacheHandler()
{
}
void COpenGLCacheHandler::setAlphaFunc(GLenum mode, GLclampf ref)
{
if (AlphaMode != mode || AlphaRef != ref) {
glAlphaFunc(mode, ref);
AlphaMode = mode;
AlphaRef = ref;
}
}
void COpenGLCacheHandler::setAlphaTest(bool enable)
{
if (AlphaTest != enable) {
if (enable)
glEnable(GL_ALPHA_TEST);
else
glDisable(GL_ALPHA_TEST);
AlphaTest = enable;
}
}
void COpenGLCacheHandler::setClientState(bool vertex, bool normal, bool color, bool texCoord0)
{
if (ClientStateVertex != vertex) {
if (vertex)
glEnableClientState(GL_VERTEX_ARRAY);
else
glDisableClientState(GL_VERTEX_ARRAY);
ClientStateVertex = vertex;
}
if (ClientStateNormal != normal) {
if (normal)
glEnableClientState(GL_NORMAL_ARRAY);
else
glDisableClientState(GL_NORMAL_ARRAY);
ClientStateNormal = normal;
}
if (ClientStateColor != color) {
if (color)
glEnableClientState(GL_COLOR_ARRAY);
else
glDisableClientState(GL_COLOR_ARRAY);
ClientStateColor = color;
}
if (ClientStateTexCoord0 != texCoord0) {
setClientActiveTexture(GL_TEXTURE0_ARB);
if (texCoord0)
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
else
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
ClientStateTexCoord0 = texCoord0;
}
}
void COpenGLCacheHandler::setMatrixMode(GLenum mode)
{
if (MatrixMode != mode) {
glMatrixMode(mode);
MatrixMode = mode;
}
}
void COpenGLCacheHandler::setClientActiveTexture(GLenum texture)
{
if (ClientActiveTexture != texture) {
Driver->irrGlClientActiveTexture(texture);
ClientActiveTexture = texture;
}
}
} // end namespace
} // end namespace
#endif // _IRR_COMPILE_WITH_OPENGL_