Refactor implementation constants.
Bug 19353282
Change-Id: If2eb9f2d78c3a44b720bb1f223711411b576d710
Reviewed-on: https://swiftshader-review.googlesource.com/5140
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Common/Math.hpp b/src/Common/Math.hpp
index 47a13f5..086c6c6 100644
--- a/src/Common/Math.hpp
+++ b/src/Common/Math.hpp
@@ -92,38 +92,41 @@
}
#define BITS(x) ( \
- !!(x & 0x80000000) + \
- !!(x & 0xC0000000) + \
- !!(x & 0xE0000000) + \
- !!(x & 0xF0000000) + \
- !!(x & 0xF8000000) + \
- !!(x & 0xFC000000) + \
- !!(x & 0xFE000000) + \
- !!(x & 0xFF000000) + \
- !!(x & 0xFF800000) + \
- !!(x & 0xFFC00000) + \
- !!(x & 0xFFE00000) + \
- !!(x & 0xFFF00000) + \
- !!(x & 0xFFF80000) + \
- !!(x & 0xFFFC0000) + \
- !!(x & 0xFFFE0000) + \
- !!(x & 0xFFFF0000) + \
- !!(x & 0xFFFF8000) + \
- !!(x & 0xFFFFC000) + \
- !!(x & 0xFFFFE000) + \
- !!(x & 0xFFFFF000) + \
- !!(x & 0xFFFFF800) + \
- !!(x & 0xFFFFFC00) + \
- !!(x & 0xFFFFFE00) + \
- !!(x & 0xFFFFFF00) + \
- !!(x & 0xFFFFFF80) + \
- !!(x & 0xFFFFFFC0) + \
- !!(x & 0xFFFFFFE0) + \
- !!(x & 0xFFFFFFF0) + \
- !!(x & 0xFFFFFFF8) + \
- !!(x & 0xFFFFFFFC) + \
- !!(x & 0xFFFFFFFE) + \
- !!(x & 0xFFFFFFFF))
+ !!((x) & 0x80000000) + \
+ !!((x) & 0xC0000000) + \
+ !!((x) & 0xE0000000) + \
+ !!((x) & 0xF0000000) + \
+ !!((x) & 0xF8000000) + \
+ !!((x) & 0xFC000000) + \
+ !!((x) & 0xFE000000) + \
+ !!((x) & 0xFF000000) + \
+ !!((x) & 0xFF800000) + \
+ !!((x) & 0xFFC00000) + \
+ !!((x) & 0xFFE00000) + \
+ !!((x) & 0xFFF00000) + \
+ !!((x) & 0xFFF80000) + \
+ !!((x) & 0xFFFC0000) + \
+ !!((x) & 0xFFFE0000) + \
+ !!((x) & 0xFFFF0000) + \
+ !!((x) & 0xFFFF8000) + \
+ !!((x) & 0xFFFFC000) + \
+ !!((x) & 0xFFFFE000) + \
+ !!((x) & 0xFFFFF000) + \
+ !!((x) & 0xFFFFF800) + \
+ !!((x) & 0xFFFFFC00) + \
+ !!((x) & 0xFFFFFE00) + \
+ !!((x) & 0xFFFFFF00) + \
+ !!((x) & 0xFFFFFF80) + \
+ !!((x) & 0xFFFFFFC0) + \
+ !!((x) & 0xFFFFFFE0) + \
+ !!((x) & 0xFFFFFFF0) + \
+ !!((x) & 0xFFFFFFF8) + \
+ !!((x) & 0xFFFFFFFC) + \
+ !!((x) & 0xFFFFFFFE) + \
+ !!((x) & 0xFFFFFFFF))
+
+ #define MAX(x, y) ((x) > (y) ? (x) : (y))
+ #define MIN(x, y) ((x) < (y) ? (x) : (y))
inline float exp2(float x)
{
diff --git a/src/D3D9/Direct3D9.cpp b/src/D3D9/Direct3D9.cpp
index 298b22f..de8a86e 100644
--- a/src/D3D9/Direct3D9.cpp
+++ b/src/D3D9/Direct3D9.cpp
@@ -1446,11 +1446,11 @@
D3DLINECAPS_TEXTURE | // Supports texture-mapping.
D3DLINECAPS_ZTEST; // Supports z-buffer comparisons.
- caps.MaxTextureWidth = 1 << (MIPMAP_LEVELS - 1);
- caps.MaxTextureHeight = 1 << (MIPMAP_LEVELS - 1);
- caps.MaxVolumeExtent = 1 << (MIPMAP_LEVELS - 1);
+ caps.MaxTextureWidth = 1 << (sw::MIPMAP_LEVELS - 1);
+ caps.MaxTextureHeight = 1 << (sw::MIPMAP_LEVELS - 1);
+ caps.MaxVolumeExtent = 1 << (sw::MIPMAP_LEVELS - 1);
caps.MaxTextureRepeat = 8192;
- caps.MaxTextureAspectRatio = 1 << (MIPMAP_LEVELS - 1);
+ caps.MaxTextureAspectRatio = 1 << (sw::MIPMAP_LEVELS - 1);
caps.MaxAnisotropy = maxAnisotropy;
caps.MaxVertexW = 1e+010;
diff --git a/src/D3D9/Direct3DCubeTexture9.cpp b/src/D3D9/Direct3DCubeTexture9.cpp
index 992095e..7907788 100644
--- a/src/D3D9/Direct3DCubeTexture9.cpp
+++ b/src/D3D9/Direct3DCubeTexture9.cpp
@@ -32,10 +32,10 @@
int width = edgeLength;
int height = edgeLength;
- for(unsigned int level = 0; level < MIPMAP_LEVELS; level++)
+ for(unsigned int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(level < this->levels)
- {
+ {
surfaceLevel[face][level] = new Direct3DSurface9(device, this, width, height, format, pool, D3DMULTISAMPLE_NONE, 0, false, usage);
surfaceLevel[face][level]->bind();
}
@@ -56,7 +56,7 @@
for(unsigned int face = 0; face < 6; face++)
{
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(surfaceLevel[face][level])
{
diff --git a/src/D3D9/Direct3DCubeTexture9.hpp b/src/D3D9/Direct3DCubeTexture9.hpp
index bead8ec..a86bb0d 100644
--- a/src/D3D9/Direct3DCubeTexture9.hpp
+++ b/src/D3D9/Direct3DCubeTexture9.hpp
@@ -66,7 +66,7 @@
// Creation parameters
const unsigned int edgeLength;
- Direct3DSurface9 *surfaceLevel[6][MIPMAP_LEVELS];
+ Direct3DSurface9 *surfaceLevel[6][sw::MIPMAP_LEVELS];
};
}
diff --git a/src/D3D9/Direct3DDevice9.cpp b/src/D3D9/Direct3DDevice9.cpp
index 9000357..299ec85 100644
--- a/src/D3D9/Direct3DDevice9.cpp
+++ b/src/D3D9/Direct3DDevice9.cpp
@@ -145,14 +145,14 @@
SetTransform(D3DTS_WORLDMATRIX(i), &identity);
}
- for(int i = 0; i < FRAGMENT_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_PIXEL_SHADER_CONST; i++)
{
float zero[4] = {0, 0, 0, 0};
SetPixelShaderConstantF(i, zero, 1);
}
- for(int i = 0; i < VERTEX_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_VERTEX_SHADER_CONST; i++)
{
float zero[4] = {0, 0, 0, 0};
@@ -565,7 +565,7 @@
*surface = 0;
- if(width == 0 || height == 0 || d3d9->CheckDeviceFormat(adapter, deviceType, D3DFMT_X8R8G8B8, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, format) != D3D_OK || height > OUTLINE_RESOLUTION)
+ if(width == 0 || height == 0 || d3d9->CheckDeviceFormat(adapter, deviceType, D3DFMT_X8R8G8B8, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, format) != D3D_OK || height > sw::OUTLINE_RESOLUTION)
{
return INVALIDCALL();
}
@@ -779,7 +779,7 @@
*surface = 0;
- if(width == 0 || height == 0 || d3d9->CheckDeviceFormat(adapter, deviceType, D3DFMT_X8R8G8B8, D3DUSAGE_RENDERTARGET, D3DRTYPE_SURFACE, format) != D3D_OK || height > OUTLINE_RESOLUTION)
+ if(width == 0 || height == 0 || d3d9->CheckDeviceFormat(adapter, deviceType, D3DFMT_X8R8G8B8, D3DUSAGE_RENDERTARGET, D3DRTYPE_SURFACE, format) != D3D_OK || height > sw::OUTLINE_RESOLUTION)
{
return INVALIDCALL();
}
@@ -2969,7 +2969,7 @@
if(!stateRecorder)
{
- for(unsigned int i = 0; i < count && startRegister + i < FRAGMENT_UNIFORM_VECTORS; i++)
+ for(unsigned int i = 0; i < count && startRegister + i < MAX_PIXEL_SHADER_CONST; i++)
{
pixelShaderConstantF[startRegister + i][0] = constantData[i * 4 + 0];
pixelShaderConstantF[startRegister + i][1] = constantData[i * 4 + 1];
@@ -5245,7 +5245,7 @@
if(!stateRecorder)
{
- for(unsigned int i = 0; i < count && startRegister + i < VERTEX_UNIFORM_VECTORS; i++)
+ for(unsigned int i = 0; i < count && startRegister + i < MAX_VERTEX_SHADER_CONST; i++)
{
vertexShaderConstantF[startRegister + i][0] = constantData[i * 4 + 0];
vertexShaderConstantF[startRegister + i][1] = constantData[i * 4 + 1];
@@ -6087,7 +6087,7 @@
Direct3DTexture9 *texture = dynamic_cast<Direct3DTexture9*>(baseTexture);
Direct3DSurface9 *surface;
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -6116,7 +6116,7 @@
Direct3DCubeTexture9 *cubeTexture = dynamic_cast<Direct3DCubeTexture9*>(baseTexture);
Direct3DSurface9 *surface;
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -6144,7 +6144,7 @@
Direct3DVolumeTexture9 *volumeTexture = dynamic_cast<Direct3DVolumeTexture9*>(baseTexture);
Direct3DVolume9 *volume;
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
diff --git a/src/D3D9/Direct3DDevice9.hpp b/src/D3D9/Direct3DDevice9.hpp
index c854678..06bad2d 100644
--- a/src/D3D9/Direct3DDevice9.hpp
+++ b/src/D3D9/Direct3DDevice9.hpp
@@ -42,6 +42,12 @@
class Direct3DIndexBuffer9;
class CriticalSection;
+ enum
+ {
+ MAX_VERTEX_SHADER_CONST = MIN(256, sw::VERTEX_UNIFORM_VECTORS),
+ MAX_PIXEL_SHADER_CONST = MIN(224, sw::FRAGMENT_UNIFORM_VECTORS),
+ };
+
class Direct3DDevice9 : public IDirect3DDevice9, public Unknown
{
friend CriticalSection;
@@ -264,11 +270,11 @@
unsigned int vertexShaderConstantsFDirty;
unsigned int vertexShaderConstantsIDirty;
- float pixelShaderConstantF[FRAGMENT_UNIFORM_VECTORS][4];
+ float pixelShaderConstantF[MAX_PIXEL_SHADER_CONST][4];
int pixelShaderConstantI[16][4];
int pixelShaderConstantB[16];
- float vertexShaderConstantF[VERTEX_UNIFORM_VECTORS][4];
+ float vertexShaderConstantF[MAX_VERTEX_SHADER_CONST][4];
int vertexShaderConstantI[16][4];
int vertexShaderConstantB[16];
diff --git a/src/D3D9/Direct3DStateBlock9.cpp b/src/D3D9/Direct3DStateBlock9.cpp
index da0611a..1ad9ffa 100644
--- a/src/D3D9/Direct3DStateBlock9.cpp
+++ b/src/D3D9/Direct3DStateBlock9.cpp
@@ -52,7 +52,7 @@
capturePixelSamplerStates();
capturePixelShaderStates();
}
-
+
if(type == D3DSBT_VERTEXSTATE || type == D3DSBT_ALL)
{
captureVertexRenderStates();
@@ -112,7 +112,7 @@
return Unknown::AddRef();
}
-
+
unsigned long Direct3DStateBlock9::Release()
{
TRACE("");
@@ -130,7 +130,7 @@
{
return INVALIDCALL();
}
-
+
if(fvfCaptured)
{
device->SetFVF(FVF);
@@ -248,7 +248,7 @@
device->SetViewport(&viewport);
}
- for(int i = 0; i < FRAGMENT_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_PIXEL_SHADER_CONST; i++)
{
if(*(int*)pixelShaderConstantF[i] != 0x80000000)
{
@@ -272,7 +272,7 @@
}
}
- for(int i = 0; i < VERTEX_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_VERTEX_SHADER_CONST; i++)
{
if(*(int*)vertexShaderConstantF[i] != 0x80000000)
{
@@ -322,7 +322,7 @@
CriticalSection cs(device);
TRACE("");
-
+
if(fvfCaptured)
{
device->GetFVF(&FVF);
@@ -332,7 +332,7 @@
{
Direct3DVertexDeclaration9 *vertexDeclaration;
device->GetVertexDeclaration(reinterpret_cast<IDirect3DVertexDeclaration9**>(&vertexDeclaration));
-
+
if(vertexDeclaration)
{
vertexDeclaration->bind();
@@ -351,7 +351,7 @@
{
Direct3DIndexBuffer9 *indexBuffer;
device->GetIndices(reinterpret_cast<IDirect3DIndexBuffer9**>(&indexBuffer));
-
+
if(indexBuffer)
{
indexBuffer->bind();
@@ -525,7 +525,7 @@
device->GetViewport(&viewport);
}
- for(int i = 0; i < FRAGMENT_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_PIXEL_SHADER_CONST; i++)
{
if(*(int*)pixelShaderConstantF[i] != 0x80000000)
{
@@ -549,7 +549,7 @@
}
}
- for(int i = 0; i < VERTEX_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_VERTEX_SHADER_CONST; i++)
{
if(*(int*)vertexShaderConstantF[i] != 0x80000000)
{
@@ -872,7 +872,7 @@
viewportCaptured = false;
- for(int i = 0; i < FRAGMENT_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_PIXEL_SHADER_CONST; i++)
{
(int&)pixelShaderConstantF[i][0] = 0x80000000;
(int&)pixelShaderConstantF[i][1] = 0x80000000;
@@ -880,7 +880,7 @@
(int&)pixelShaderConstantF[i][3] = 0x80000000;
}
- for(int i = 0; i < VERTEX_UNIFORM_VECTORS; i++)
+ for(int i = 0; i < MAX_VERTEX_SHADER_CONST; i++)
{
(int&)vertexShaderConstantF[i][0] = 0x80000000;
(int&)vertexShaderConstantF[i][1] = 0x80000000;
@@ -1085,7 +1085,7 @@
{
captureSamplerState(sampler, D3DSAMP_ADDRESSU);
captureSamplerState(sampler, D3DSAMP_ADDRESSV);
- captureSamplerState(sampler, D3DSAMP_ADDRESSW);
+ captureSamplerState(sampler, D3DSAMP_ADDRESSW);
captureSamplerState(sampler, D3DSAMP_BORDERCOLOR);
captureSamplerState(sampler, D3DSAMP_MAGFILTER);
captureSamplerState(sampler, D3DSAMP_MINFILTER);
@@ -1102,7 +1102,7 @@
{
pixelShaderCaptured = true;
device->GetPixelShader(reinterpret_cast<IDirect3DPixelShader9**>(&pixelShader));
-
+
if(pixelShader)
{
pixelShader->bind();
@@ -1111,7 +1111,7 @@
device->GetPixelShaderConstantF(0, pixelShaderConstantF[0], 32);
device->GetPixelShaderConstantI(0, pixelShaderConstantI[0], 16);
- device->GetPixelShaderConstantB(0, pixelShaderConstantB, 16);
+ device->GetPixelShaderConstantB(0, pixelShaderConstantB, 16);
}
void Direct3DStateBlock9::captureVertexRenderStates()
@@ -1206,16 +1206,16 @@
{
vertexShaderCaptured = true;
device->GetVertexShader(reinterpret_cast<IDirect3DVertexShader9**>(&vertexShader));
-
+
if(vertexShader)
{
vertexShader->bind();
vertexShader->Release();
}
- device->GetVertexShaderConstantF(0, vertexShaderConstantF[0], VERTEX_UNIFORM_VECTORS);
+ device->GetVertexShaderConstantF(0, vertexShaderConstantF[0], MAX_VERTEX_SHADER_CONST);
device->GetVertexShaderConstantI(0, vertexShaderConstantI[0], 16);
- device->GetVertexShaderConstantB(0, vertexShaderConstantB, 16);
+ device->GetVertexShaderConstantB(0, vertexShaderConstantB, 16);
}
void Direct3DStateBlock9::captureStreamSourceFrequencies()
@@ -1232,7 +1232,7 @@
device->GetFVF(&FVF);
fvfCaptured = true;
}
-
+
void Direct3DStateBlock9::captureVertexDeclaration()
{
vertexDeclarationCaptured = true;
@@ -1273,7 +1273,7 @@
{
streamSourceCaptured[stream] = true;
device->GetStreamSource(stream, reinterpret_cast<IDirect3DVertexBuffer9**>(&streamSource[stream].vertexBuffer), &streamSource[stream].offset, &streamSource[stream].stride);
-
+
if(streamSource[stream].vertexBuffer)
{
streamSource[stream].vertexBuffer->bind();
diff --git a/src/D3D9/Direct3DStateBlock9.hpp b/src/D3D9/Direct3DStateBlock9.hpp
index 3fd4bbc..e831a04 100644
--- a/src/D3D9/Direct3DStateBlock9.hpp
+++ b/src/D3D9/Direct3DStateBlock9.hpp
@@ -12,7 +12,7 @@
#ifndef D3D9_Direct3DStateBlock9_hpp
#define D3D9_Direct3DStateBlock9_hpp
-#include "Config.hpp"
+#include "Direct3DDevice9.hpp"
#include "Unknown.hpp"
#include <vector>
@@ -172,11 +172,11 @@
bool viewportCaptured;
D3DVIEWPORT9 viewport;
- float pixelShaderConstantF[FRAGMENT_UNIFORM_VECTORS][4];
+ float pixelShaderConstantF[MAX_PIXEL_SHADER_CONST][4];
int pixelShaderConstantI[16][4];
int pixelShaderConstantB[16];
- float vertexShaderConstantF[VERTEX_UNIFORM_VECTORS][4];
+ float vertexShaderConstantF[MAX_VERTEX_SHADER_CONST][4];
int vertexShaderConstantI[16][4];
int vertexShaderConstantB[16];
diff --git a/src/D3D9/Direct3DTexture9.cpp b/src/D3D9/Direct3DTexture9.cpp
index 5e2f1c3..2d7dcda 100644
--- a/src/D3D9/Direct3DTexture9.cpp
+++ b/src/D3D9/Direct3DTexture9.cpp
@@ -27,7 +27,7 @@
this->levels = sw::log2(sw::max((int)width, (int)height, 1)) + 1;
}
- for(unsigned int level = 0; level < MIPMAP_LEVELS; level++)
+ for(unsigned int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(level < this->levels)
{
@@ -48,7 +48,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(surfaceLevel[level])
{
diff --git a/src/D3D9/Direct3DTexture9.hpp b/src/D3D9/Direct3DTexture9.hpp
index d8ed329..2c19834 100644
--- a/src/D3D9/Direct3DTexture9.hpp
+++ b/src/D3D9/Direct3DTexture9.hpp
@@ -67,7 +67,7 @@
const unsigned int width;
const unsigned int height;
- Direct3DSurface9 *surfaceLevel[MIPMAP_LEVELS];
+ Direct3DSurface9 *surfaceLevel[sw::MIPMAP_LEVELS];
};
}
diff --git a/src/D3D9/Direct3DVolumeTexture9.cpp b/src/D3D9/Direct3DVolumeTexture9.cpp
index 5633cc1..fff5288 100644
--- a/src/D3D9/Direct3DVolumeTexture9.cpp
+++ b/src/D3D9/Direct3DVolumeTexture9.cpp
@@ -27,7 +27,7 @@
this->levels = sw::log2(sw::max((int)width, (int)height, (int)depth, 1)) + 1;
}
- for(unsigned int level = 0; level < MIPMAP_LEVELS; level++)
+ for(unsigned int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(level < this->levels)
{
@@ -49,7 +49,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < sw::MIPMAP_LEVELS; level++)
{
if(volumeLevel[level])
{
diff --git a/src/D3D9/Direct3DVolumeTexture9.hpp b/src/D3D9/Direct3DVolumeTexture9.hpp
index 1fa2447..e4dda38 100644
--- a/src/D3D9/Direct3DVolumeTexture9.hpp
+++ b/src/D3D9/Direct3DVolumeTexture9.hpp
@@ -68,7 +68,7 @@
const unsigned int height;
const unsigned int depth;
- Direct3DVolume9 *volumeLevel[MIPMAP_LEVELS];
+ Direct3DVolume9 *volumeLevel[sw::MIPMAP_LEVELS];
};
}
diff --git a/src/Main/Config.cpp b/src/Main/Config.cpp
index 10928ba..becea9c 100644
--- a/src/Main/Config.cpp
+++ b/src/Main/Config.cpp
@@ -14,63 +14,66 @@
#include "Thread.hpp"
#include "Timer.hpp"
-Profiler profiler;
-
-Profiler::Profiler()
+namespace sw
{
- reset();
-}
+ Profiler profiler;
-void Profiler::reset()
-{
- framesSec = 0;
- framesTotal = 0;
- FPS = 0;
-
- #if PERF_PROFILE
- for(int i = 0; i < PERF_TIMERS; i++)
- {
- cycles[i] = 0;
- }
-
- ropOperations = 0;
- ropOperationsTotal = 0;
- ropOperationsFrame = 0;
-
- texOperations = 0;
- texOperationsTotal = 0;
- texOperationsFrame = 0;
-
- compressedTex = 0;
- compressedTexTotal = 0;
- compressedTexFrame = 0;
- #endif
-};
-
-void Profiler::nextFrame()
-{
- #if PERF_PROFILE
- ropOperationsFrame = sw::atomicExchange(&ropOperations, 0);
- texOperationsFrame = sw::atomicExchange(&texOperations, 0);
- compressedTexFrame = sw::atomicExchange(&compressedTex, 0);
-
- ropOperationsTotal += ropOperationsFrame;
- texOperationsTotal += texOperationsFrame;
- compressedTexTotal += compressedTexFrame;
- #endif
-
- static double fpsTime = sw::Timer::seconds();
-
- double time = sw::Timer::seconds();
- double delta = time - fpsTime;
- framesSec++;
-
- if(delta > 1.0)
+ Profiler::Profiler()
{
- FPS = framesSec / delta;
-
- fpsTime = time;
- framesTotal += framesSec;
- framesSec = 0;
+ reset();
}
-}
+
+ void Profiler::reset()
+ {
+ framesSec = 0;
+ framesTotal = 0;
+ FPS = 0;
+
+ #if PERF_PROFILE
+ for(int i = 0; i < PERF_TIMERS; i++)
+ {
+ cycles[i] = 0;
+ }
+
+ ropOperations = 0;
+ ropOperationsTotal = 0;
+ ropOperationsFrame = 0;
+
+ texOperations = 0;
+ texOperationsTotal = 0;
+ texOperationsFrame = 0;
+
+ compressedTex = 0;
+ compressedTexTotal = 0;
+ compressedTexFrame = 0;
+ #endif
+ };
+
+ void Profiler::nextFrame()
+ {
+ #if PERF_PROFILE
+ ropOperationsFrame = sw::atomicExchange(&ropOperations, 0);
+ texOperationsFrame = sw::atomicExchange(&texOperations, 0);
+ compressedTexFrame = sw::atomicExchange(&compressedTex, 0);
+
+ ropOperationsTotal += ropOperationsFrame;
+ texOperationsTotal += texOperationsFrame;
+ compressedTexTotal += compressedTexFrame;
+ #endif
+
+ static double fpsTime = sw::Timer::seconds();
+
+ double time = sw::Timer::seconds();
+ double delta = time - fpsTime;
+ framesSec++;
+
+ if(delta > 1.0)
+ {
+ FPS = framesSec / delta;
+
+ fpsTime = time;
+ framesTotal += framesSec;
+ framesSec = 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Main/Config.hpp b/src/Main/Config.hpp
index 7237d28..7d0952c 100644
--- a/src/Main/Config.hpp
+++ b/src/Main/Config.hpp
@@ -30,74 +30,69 @@
#define DEFAULT_THREAD_COUNT 0
#endif
-enum
+namespace sw
{
- PERF_PIXEL,
- PERF_PIPE,
- PERF_INTERP,
- PERF_SHADER,
- PERF_TEX,
- PERF_ROP,
+ enum
+ {
+ PERF_PIXEL,
+ PERF_PIPE,
+ PERF_INTERP,
+ PERF_SHADER,
+ PERF_TEX,
+ PERF_ROP,
- PERF_TIMERS
-};
+ PERF_TIMERS
+ };
-struct Profiler
-{
- Profiler();
+ struct Profiler
+ {
+ Profiler();
- void reset();
- void nextFrame();
+ void reset();
+ void nextFrame();
- int framesSec;
- int framesTotal;
- double FPS;
+ int framesSec;
+ int framesTotal;
+ double FPS;
- #if PERF_PROFILE
- double cycles[PERF_TIMERS];
+ #if PERF_PROFILE
+ double cycles[PERF_TIMERS];
- int64_t ropOperations;
- int64_t ropOperationsTotal;
- int64_t ropOperationsFrame;
+ int64_t ropOperations;
+ int64_t ropOperationsTotal;
+ int64_t ropOperationsFrame;
- int64_t texOperations;
- int64_t texOperationsTotal;
- int64_t texOperationsFrame;
+ int64_t texOperations;
+ int64_t texOperationsTotal;
+ int64_t texOperationsFrame;
- int64_t compressedTex;
- int64_t compressedTexTotal;
- int64_t compressedTexFrame;
- #endif
-};
+ int64_t compressedTex;
+ int64_t compressedTexTotal;
+ int64_t compressedTexFrame;
+ #endif
+ };
-extern Profiler profiler;
+ extern Profiler profiler;
-enum
-{
- OUTLINE_RESOLUTION = 4096, // Maximum vertical resolution of the render target
- MIPMAP_LEVELS = 14,
- MAX_COLOR_ATTACHMENTS = 8,
- VERTEX_ATTRIBUTES = 16,
- TEXTURE_IMAGE_UNITS = 16,
- VERTEX_TEXTURE_IMAGE_UNITS = 16,
- TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,
- FRAGMENT_UNIFORM_VECTORS = 224,
- VERTEX_UNIFORM_VECTORS = 256,
- MAX_FRAGMENT_UNIFORM_COMPONENTS = FRAGMENT_UNIFORM_VECTORS * 4,
- MAX_VERTEX_UNIFORM_COMPONENTS = VERTEX_UNIFORM_VECTORS * 4,
- MAX_FRAGMENT_UNIFORM_BLOCKS = 12,
- MAX_VERTEX_UNIFORM_BLOCKS = 12,
- MAX_UNIFORM_BLOCK_SIZE = 16384,
- MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS = MAX_FRAGMENT_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
- MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
- MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS + MAX_FRAGMENT_UNIFORM_COMPONENTS,
- MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS + MAX_VERTEX_UNIFORM_COMPONENTS,
- MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 4,
- MAX_UNIFORM_BUFFER_BINDINGS = MAX_FRAGMENT_UNIFORM_BLOCKS + MAX_VERTEX_UNIFORM_BLOCKS, // Limited to 127 by SourceParameter.bufferIndex in Shader.hpp
- MAX_CLIP_PLANES = 6,
- MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 64,
- MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 64,
- RENDERTARGETS = 4,
-};
+ enum
+ {
+ OUTLINE_RESOLUTION = 4096, // Maximum vertical resolution of the render target
+ MIPMAP_LEVELS = 14,
+ VERTEX_ATTRIBUTES = 16,
+ TEXTURE_IMAGE_UNITS = 16,
+ VERTEX_TEXTURE_IMAGE_UNITS = 16,
+ TOTAL_IMAGE_UNITS = TEXTURE_IMAGE_UNITS + VERTEX_TEXTURE_IMAGE_UNITS,
+ FRAGMENT_UNIFORM_VECTORS = 224,
+ VERTEX_UNIFORM_VECTORS = 256,
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 12,
+ MAX_VERTEX_UNIFORM_BLOCKS = 12,
+ MAX_UNIFORM_BUFFER_BINDINGS = MAX_FRAGMENT_UNIFORM_BLOCKS + MAX_VERTEX_UNIFORM_BLOCKS, // Limited to 127 by SourceParameter.bufferIndex in Shader.hpp
+ MAX_UNIFORM_BLOCK_SIZE = 16384,
+ MAX_CLIP_PLANES = 6,
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 64,
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 64,
+ RENDERTARGETS = 4,
+ };
+}
#endif // sw_Config_hpp
diff --git a/src/Main/SwiftConfig.cpp b/src/Main/SwiftConfig.cpp
index d80e344..9dce441 100644
--- a/src/Main/SwiftConfig.cpp
+++ b/src/Main/SwiftConfig.cpp
@@ -22,10 +22,10 @@
#include <sys/stat.h>
#include <string.h>
-extern Profiler profiler;
-
namespace sw
{
+ extern Profiler profiler;
+
std::string itoa(int number)
{
std::stringstream ss;
diff --git a/src/OpenGL/libGL/Context.cpp b/src/OpenGL/libGL/Context.cpp
index 0da8157..e886392 100644
--- a/src/OpenGL/libGL/Context.cpp
+++ b/src/OpenGL/libGL/Context.cpp
@@ -2112,7 +2112,7 @@
{
Texture2D *texture = static_cast<Texture2D*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -2135,7 +2135,7 @@
{
TextureCubeMap *cubeTexture = static_cast<TextureCubeMap*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
diff --git a/src/OpenGL/libGL/Context.h b/src/OpenGL/libGL/Context.h
index cd41df6..74ecb6c 100644
--- a/src/OpenGL/libGL/Context.h
+++ b/src/OpenGL/libGL/Context.h
@@ -311,12 +311,12 @@
{
MAX_VERTEX_ATTRIBS = 9,
MAX_UNIFORM_VECTORS = 256, // Device limit
- MAX_VERTEX_UNIFORM_VECTORS = VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
+ MAX_VERTEX_UNIFORM_VECTORS = sw::VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
MAX_VARYING_VECTORS = 10,
MAX_TEXTURE_IMAGE_UNITS = 2,
MAX_VERTEX_TEXTURE_IMAGE_UNITS = 1,
MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS,
- MAX_FRAGMENT_UNIFORM_VECTORS = FRAGMENT_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
+ MAX_FRAGMENT_UNIFORM_VECTORS = sw::FRAGMENT_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
MAX_DRAW_BUFFERS = 1,
IMPLEMENTATION_COLOR_READ_FORMAT = GL_RGB,
diff --git a/src/OpenGL/libGL/Device.hpp b/src/OpenGL/libGL/Device.hpp
index 63df3f9..e85d909 100644
--- a/src/OpenGL/libGL/Device.hpp
+++ b/src/OpenGL/libGL/Device.hpp
@@ -89,8 +89,8 @@
bool vertexShaderDirty;
unsigned int vertexShaderConstantsFDirty;
- float pixelShaderConstantF[FRAGMENT_UNIFORM_VECTORS][4];
- float vertexShaderConstantF[VERTEX_UNIFORM_VECTORS][4];
+ float pixelShaderConstantF[sw::FRAGMENT_UNIFORM_VECTORS][4];
+ float vertexShaderConstantF[sw::VERTEX_UNIFORM_VECTORS][4];
Image *renderTarget;
Image *depthStencil;
diff --git a/src/OpenGL/libGL/Texture.cpp b/src/OpenGL/libGL/Texture.cpp
index 162599c..0f1a0e9 100644
--- a/src/OpenGL/libGL/Texture.cpp
+++ b/src/OpenGL/libGL/Texture.cpp
@@ -271,7 +271,7 @@
Texture2D::Texture2D(GLuint name) : Texture(name)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[i] = 0;
}
@@ -284,7 +284,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i])
{
@@ -359,7 +359,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[levels])
{
levels++;
}
@@ -624,7 +624,7 @@
{
for(int f = 0; f < 6; f++)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[f][i] = 0;
}
@@ -643,7 +643,7 @@
for(int f = 0; f < 6; f++)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[f][i])
{
@@ -736,7 +736,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[0][levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[0][levels])
{
levels++;
}
diff --git a/src/OpenGL/libGL/Texture.h b/src/OpenGL/libGL/Texture.h
index 6574d42..327aca3 100644
--- a/src/OpenGL/libGL/Texture.h
+++ b/src/OpenGL/libGL/Texture.h
@@ -36,10 +36,10 @@
enum
{
- IMPLEMENTATION_MAX_TEXTURE_LEVELS = MIPMAP_LEVELS,
- IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = OUTLINE_RESOLUTION,
+ IMPLEMENTATION_MAX_TEXTURE_LEVELS = sw::MIPMAP_LEVELS,
+ IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = sw::OUTLINE_RESOLUTION,
};
class Texture : public NamedObject
@@ -149,7 +149,7 @@
bool isMipmapComplete() const;
Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
-
+
// A specific internal reference count is kept for colorbuffer proxy references,
// because, as the renderbuffer acting as proxy will maintain a binding pointer
// back to this texture, there would be a circular reference if we used a binding
@@ -170,7 +170,7 @@
void releaseProxy(const Renderbuffer *proxy);
virtual GLenum getTarget() const;
-
+
virtual GLsizei getWidth(GLenum target, GLint level) const;
virtual GLsizei getHeight(GLenum target, GLint level) const;
virtual GLenum getFormat(GLenum target, GLint level) const;
@@ -189,7 +189,7 @@
virtual bool isSamplerComplete() const;
virtual bool isCompressed(GLenum target, GLint level) const;
virtual bool isDepth(GLenum target, GLint level) const;
-
+
virtual void generateMipmaps();
virtual Renderbuffer *getRenderbuffer(GLenum target);
@@ -205,7 +205,7 @@
Image *getImage(GLenum face, unsigned int level);
Image *image[6][IMPLEMENTATION_MAX_TEXTURE_LEVELS];
-
+
// A specific internal reference count is kept for colorbuffer proxy references,
// because, as the renderbuffer acting as proxy will maintain a binding pointer
// back to this texture, there would be a circular reference if we used a binding
diff --git a/src/OpenGL/libGLES_CM/Context.cpp b/src/OpenGL/libGLES_CM/Context.cpp
index 5cc63be..0b1ce44 100644
--- a/src/OpenGL/libGLES_CM/Context.cpp
+++ b/src/OpenGL/libGLES_CM/Context.cpp
@@ -2342,7 +2342,7 @@
{
Texture2D *texture = static_cast<Texture2D*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
diff --git a/src/OpenGL/libGLES_CM/Context.h b/src/OpenGL/libGLES_CM/Context.h
index 4e86885..90293e3 100644
--- a/src/OpenGL/libGLES_CM/Context.h
+++ b/src/OpenGL/libGLES_CM/Context.h
@@ -60,11 +60,12 @@
enum
{
- MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,
+ MAX_VERTEX_ATTRIBS = sw::VERTEX_ATTRIBUTES,
MAX_VARYING_VECTORS = 10,
MAX_TEXTURE_UNITS = 2,
MAX_DRAW_BUFFERS = 1,
MAX_LIGHTS = 8,
+ MAX_CLIP_PLANES = sw::MAX_CLIP_PLANES,
MAX_MODELVIEW_STACK_DEPTH = 32,
MAX_PROJECTION_STACK_DEPTH = 2,
diff --git a/src/OpenGL/libGLES_CM/Texture.cpp b/src/OpenGL/libGLES_CM/Texture.cpp
index bd3da9c..3729d9b 100644
--- a/src/OpenGL/libGLES_CM/Texture.cpp
+++ b/src/OpenGL/libGLES_CM/Texture.cpp
@@ -331,7 +331,7 @@
Texture2D::Texture2D(GLuint name) : Texture(name)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[i] = nullptr;
}
@@ -346,7 +346,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i])
{
@@ -391,7 +391,7 @@
{
int imageCount = 0;
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i] && image[i]->isChildOf(this))
{
@@ -450,7 +450,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[levels])
{
levels++;
}
@@ -496,7 +496,7 @@
return;
}
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -513,7 +513,7 @@
void Texture2D::releaseTexImage()
{
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -817,7 +817,7 @@
egl::Image *createDepthStencil(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard)
{
- if(height > OUTLINE_RESOLUTION)
+ if(height > sw::OUTLINE_RESOLUTION)
{
ERR("Invalid parameters: %dx%d", width, height);
return 0;
diff --git a/src/OpenGL/libGLES_CM/Texture.h b/src/OpenGL/libGLES_CM/Texture.h
index 4a49ddb..6d53711 100644
--- a/src/OpenGL/libGLES_CM/Texture.h
+++ b/src/OpenGL/libGLES_CM/Texture.h
@@ -38,10 +38,10 @@
enum
{
- IMPLEMENTATION_MAX_TEXTURE_LEVELS = MIPMAP_LEVELS,
- IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = OUTLINE_RESOLUTION,
+ IMPLEMENTATION_MAX_TEXTURE_LEVELS = sw::MIPMAP_LEVELS,
+ IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = sw::OUTLINE_RESOLUTION,
};
class Texture : public egl::Texture
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index 5ce6448..af7a884 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -2117,8 +2117,7 @@
*params = IMPLEMENTATION_MAX_TEXTURE_SIZE;
break;
case GL_MAX_COLOR_ATTACHMENTS: // integer, at least 8
- UNIMPLEMENTED();
- *params = IMPLEMENTATION_MAX_COLOR_ATTACHMENTS;
+ *params = MAX_COLOR_ATTACHMENTS;
break;
case GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: // integer, at least 50048
*params = MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS;
@@ -2132,7 +2131,7 @@
break;
case GL_MAX_DRAW_BUFFERS: // integer, at least 8
UNIMPLEMENTED();
- *params = IMPLEMENTATION_MAX_DRAW_BUFFERS;
+ *params = MAX_DRAW_BUFFERS;
break;
case GL_MAX_ELEMENT_INDEX:
*params = MAX_ELEMENT_INDEX;
@@ -2171,7 +2170,7 @@
break;
case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: // integer, at least 4
UNIMPLEMENTED();
- *params = IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS;
+ *params = MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS;
break;
case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: // integer, at least 4
UNIMPLEMENTED();
@@ -2181,7 +2180,7 @@
*params = MAX_UNIFORM_BLOCK_SIZE;
break;
case GL_MAX_UNIFORM_BUFFER_BINDINGS: // integer, at least 24
- *params = IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS;
+ *params = MAX_UNIFORM_BUFFER_BINDINGS;
break;
case GL_MAX_VARYING_COMPONENTS: // integer, at least 60
UNIMPLEMENTED();
@@ -2264,7 +2263,7 @@
}
break;
case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: // integer, defaults to 1
- *params = IMPLEMENTATION_UNIFORM_BUFFER_OFFSET_ALIGNMENT;
+ *params = UNIFORM_BUFFER_OFFSET_ALIGNMENT;
break;
case GL_UNIFORM_BUFFER_SIZE: // indexed[n] 64-bit integer, initially 0
if(clientVersion >= 3)
@@ -3109,7 +3108,7 @@
{
Texture2D *texture = static_cast<Texture2D*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -3130,7 +3129,7 @@
{
Texture3D *texture = static_cast<Texture3D*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -3151,7 +3150,7 @@
{
Texture2DArray *texture = static_cast<Texture2DArray*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
@@ -3174,7 +3173,7 @@
{
TextureCubeMap *cubeTexture = static_cast<TextureCubeMap*>(baseTexture);
- for(int mipmapLevel = 0; mipmapLevel < MIPMAP_LEVELS; mipmapLevel++)
+ for(int mipmapLevel = 0; mipmapLevel < sw::MIPMAP_LEVELS; mipmapLevel++)
{
int surfaceLevel = mipmapLevel;
diff --git a/src/OpenGL/libGLESv2/Context.h b/src/OpenGL/libGLESv2/Context.h
index 3fc6e95..08c7a51 100644
--- a/src/OpenGL/libGLESv2/Context.h
+++ b/src/OpenGL/libGLESv2/Context.h
@@ -15,13 +15,13 @@
#ifndef LIBGLESV2_CONTEXT_H_
#define LIBGLESV2_CONTEXT_H_
-#include "libEGL/Context.hpp"
#include "ResourceManager.h"
+#include "Buffer.h"
+#include "libEGL/Context.hpp"
#include "common/NameSpace.hpp"
#include "common/Object.hpp"
#include "common/Image.hpp"
#include "Renderer/Sampler.hpp"
-#include "TransformFeedback.h"
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
@@ -67,18 +67,18 @@
class Query;
class Sampler;
class VertexArray;
+class TransformFeedback;
enum
{
- MAX_VERTEX_ATTRIBS = VERTEX_ATTRIBUTES,
+ MAX_VERTEX_ATTRIBS = sw::VERTEX_ATTRIBUTES,
MAX_UNIFORM_VECTORS = 256, // Device limit
- MAX_VERTEX_UNIFORM_VECTORS = VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
+ MAX_VERTEX_UNIFORM_VECTORS = sw::VERTEX_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
MAX_VARYING_VECTORS = 10,
- MAX_TEXTURE_IMAGE_UNITS = TEXTURE_IMAGE_UNITS,
- MAX_VERTEX_TEXTURE_IMAGE_UNITS = VERTEX_TEXTURE_IMAGE_UNITS,
+ MAX_TEXTURE_IMAGE_UNITS = sw::TEXTURE_IMAGE_UNITS,
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = sw::VERTEX_TEXTURE_IMAGE_UNITS,
MAX_COMBINED_TEXTURE_IMAGE_UNITS = MAX_TEXTURE_IMAGE_UNITS + MAX_VERTEX_TEXTURE_IMAGE_UNITS,
- MAX_FRAGMENT_UNIFORM_VECTORS = FRAGMENT_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
- MAX_DRAW_BUFFERS = RENDERTARGETS,
+ MAX_FRAGMENT_UNIFORM_VECTORS = sw::FRAGMENT_UNIFORM_VECTORS - 3, // Reserve space for gl_DepthRange
MAX_ELEMENT_INDEX = 0x7FFFFFFF,
MAX_ELEMENTS_INDICES = 0x7FFFFFFF,
MAX_ELEMENTS_VERTICES = 0x7FFFFFFF,
@@ -86,6 +86,20 @@
MAX_FRAGMENT_INPUT_VECTORS = 15,
MIN_PROGRAM_TEXEL_OFFSET = -8,
MAX_PROGRAM_TEXEL_OFFSET = 7,
+ MAX_DRAW_BUFFERS = sw::RENDERTARGETS,
+ MAX_COLOR_ATTACHMENTS = MAX(MAX_DRAW_BUFFERS, 8),
+ MAX_FRAGMENT_UNIFORM_BLOCKS = sw::MAX_FRAGMENT_UNIFORM_BLOCKS,
+ MAX_VERTEX_UNIFORM_BLOCKS = sw::MAX_VERTEX_UNIFORM_BLOCKS,
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = sw::FRAGMENT_UNIFORM_VECTORS * 4,
+ MAX_VERTEX_UNIFORM_COMPONENTS = sw::VERTEX_UNIFORM_VECTORS * 4,
+ MAX_UNIFORM_BLOCK_SIZE = sw::MAX_UNIFORM_BLOCK_SIZE,
+ MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS = sw::MAX_FRAGMENT_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
+ MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS * MAX_UNIFORM_BLOCK_SIZE / 4,
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = MAX_FRAGMENT_UNIFORM_BLOCKS_COMPONENTS + MAX_FRAGMENT_UNIFORM_COMPONENTS,
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = MAX_VERTEX_UNIFORM_BLOCKS_COMPONENTS + MAX_VERTEX_UNIFORM_COMPONENTS,
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 4,
+ MAX_UNIFORM_BUFFER_BINDINGS = sw::MAX_UNIFORM_BUFFER_BINDINGS,
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 1,
};
const GLenum compressedTextureFormats[] =
diff --git a/src/OpenGL/libGLESv2/Device.hpp b/src/OpenGL/libGLESv2/Device.hpp
index d254d3b..9283cf3 100644
--- a/src/OpenGL/libGLESv2/Device.hpp
+++ b/src/OpenGL/libGLESv2/Device.hpp
@@ -85,10 +85,10 @@
bool vertexShaderDirty;
unsigned int vertexShaderConstantsFDirty;
- float pixelShaderConstantF[FRAGMENT_UNIFORM_VECTORS][4];
- float vertexShaderConstantF[VERTEX_UNIFORM_VECTORS][4];
+ float pixelShaderConstantF[sw::FRAGMENT_UNIFORM_VECTORS][4];
+ float vertexShaderConstantF[sw::VERTEX_UNIFORM_VECTORS][4];
- egl::Image *renderTarget[RENDERTARGETS];
+ egl::Image *renderTarget[sw::RENDERTARGETS];
egl::Image *depthBuffer;
egl::Image *stencilBuffer;
};
diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index 87e60f4..34f3263 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -29,7 +29,7 @@
Framebuffer::Framebuffer()
{
- for(int i = 0; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 0; i < MAX_COLOR_ATTACHMENTS; i++)
{
mColorbufferType[i] = GL_NONE;
}
@@ -46,7 +46,7 @@
Framebuffer::~Framebuffer()
{
- for(int i = 0; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 0; i < MAX_COLOR_ATTACHMENTS; i++)
{
mColorbufferPointer[i] = nullptr;
}
@@ -121,7 +121,7 @@
void Framebuffer::detachTexture(GLuint texture)
{
- for(int i = 0; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 0; i < MAX_COLOR_ATTACHMENTS; i++)
{
if(mColorbufferPointer[i].name() == texture && IsTextureTarget(mColorbufferType[i]))
{
@@ -145,7 +145,7 @@
void Framebuffer::detachRenderbuffer(GLuint renderbuffer)
{
- for(int i = 0; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 0; i < MAX_COLOR_ATTACHMENTS; i++)
{
if(mColorbufferPointer[i].name() == renderbuffer && IsRenderbuffer(mColorbufferType[i]))
{
@@ -312,7 +312,7 @@
height = -1;
samples = -1;
- for(int i = 0; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 0; i < MAX_COLOR_ATTACHMENTS; i++)
{
if(mColorbufferType[i] != GL_NONE)
{
@@ -613,7 +613,7 @@
mColorbufferPointer[0] = new Renderbuffer(0, colorbuffer);
mColorbufferType[0] = defaultRenderbufferType;
- for(int i = 1; i < IMPLEMENTATION_MAX_COLOR_ATTACHMENTS; ++i)
+ for(int i = 1; i < MAX_COLOR_ATTACHMENTS; i++)
{
mColorbufferPointer[i] = nullptr;
mColorbufferType[i] = GL_NONE;
diff --git a/src/OpenGL/libGLESv2/Framebuffer.h b/src/OpenGL/libGLESv2/Framebuffer.h
index 662a9cc..66f05f2 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.h
+++ b/src/OpenGL/libGLESv2/Framebuffer.h
@@ -15,6 +15,7 @@
#ifndef LIBGLESV2_FRAMEBUFFER_H_
#define LIBGLESV2_FRAMEBUFFER_H_
+#include "Context.h"
#include "common/Object.hpp"
#include "common/Image.hpp"
diff --git a/src/OpenGL/libGLESv2/Program.cpp b/src/OpenGL/libGLESv2/Program.cpp
index ccd54b2..d965278 100644
--- a/src/OpenGL/libGLESv2/Program.cpp
+++ b/src/OpenGL/libGLESv2/Program.cpp
@@ -1134,15 +1134,15 @@
void Program::applyUniformBuffers(BufferBinding* uniformBuffers)
{
- GLint vertexUniformBuffers[IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS];
- GLint fragmentUniformBuffers[IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS];
+ GLint vertexUniformBuffers[MAX_UNIFORM_BUFFER_BINDINGS];
+ GLint fragmentUniformBuffers[MAX_UNIFORM_BUFFER_BINDINGS];
- for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS; ++bufferBindingIndex)
+ for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < MAX_UNIFORM_BUFFER_BINDINGS; bufferBindingIndex++)
{
vertexUniformBuffers[bufferBindingIndex] = -1;
}
- for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS; ++bufferBindingIndex)
+ for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < MAX_UNIFORM_BUFFER_BINDINGS; bufferBindingIndex++)
{
fragmentUniformBuffers[bufferBindingIndex] = -1;
}
@@ -1172,7 +1172,7 @@
}
}
- for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS; ++bufferBindingIndex)
+ for(unsigned int bufferBindingIndex = 0; bufferBindingIndex < MAX_UNIFORM_BUFFER_BINDINGS; bufferBindingIndex++)
{
int index = vertexUniformBuffers[bufferBindingIndex];
device->VertexProcessor::setUniformBuffer(bufferBindingIndex, (index != -1) ? uniformBuffers[index].get()->getResource() : nullptr, (index != -1) ? uniformBuffers[index].getOffset() : 0);
@@ -1384,7 +1384,7 @@
}
}
}
-
+
for(int i = 0; i < rows; i++)
{
linkedAttribute[location + i] = *attribute;
diff --git a/src/OpenGL/libGLESv2/Texture.cpp b/src/OpenGL/libGLESv2/Texture.cpp
index 8bbbed5..fe1824c 100644
--- a/src/OpenGL/libGLESv2/Texture.cpp
+++ b/src/OpenGL/libGLESv2/Texture.cpp
@@ -507,7 +507,7 @@
Texture2D::Texture2D(GLuint name) : Texture(name)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[i] = nullptr;
}
@@ -522,7 +522,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i])
{
@@ -567,7 +567,7 @@
{
int imageCount = 0;
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i] && image[i]->isChildOf(this))
{
@@ -626,7 +626,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[levels])
{
levels++;
}
@@ -672,7 +672,7 @@
return;
}
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -689,7 +689,7 @@
void Texture2D::releaseTexImage()
{
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -984,7 +984,7 @@
{
for(int f = 0; f < 6; f++)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[f][i] = nullptr;
}
@@ -1003,7 +1003,7 @@
for(int f = 0; f < 6; f++)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[f][i])
{
@@ -1062,7 +1062,7 @@
for(int f = 0; f < 6; f++)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[f][i] && image[f][i]->isChildOf(this))
{
@@ -1122,7 +1122,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[0][levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[0][levels])
{
levels++;
}
@@ -1468,7 +1468,7 @@
Texture3D::Texture3D(GLuint name) : Texture(name)
{
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
image[i] = nullptr;
}
@@ -1483,7 +1483,7 @@
{
resource->lock(sw::DESTRUCT);
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i])
{
@@ -1528,7 +1528,7 @@
{
int imageCount = 0;
- for(int i = 0; i < MIPMAP_LEVELS; i++)
+ for(int i = 0; i < IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
{
if(image[i] && image[i]->isChildOf(this))
{
@@ -1593,7 +1593,7 @@
ASSERT(isSamplerComplete());
int levels = 0;
- while(levels < MIPMAP_LEVELS && image[levels])
+ while(levels < IMPLEMENTATION_MAX_TEXTURE_LEVELS && image[levels])
{
levels++;
}
@@ -1635,7 +1635,7 @@
return;
}
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -1652,7 +1652,7 @@
void Texture3D::releaseTexImage()
{
- for(int level = 0; level < MIPMAP_LEVELS; level++)
+ for(int level = 0; level < IMPLEMENTATION_MAX_TEXTURE_LEVELS; level++)
{
if(image[level])
{
@@ -2033,10 +2033,10 @@
egl::Image *createDepthStencil(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard)
{
- if(width == 0 || height == 0 || height > OUTLINE_RESOLUTION)
+ if(width == 0 || height == 0 || height > sw::OUTLINE_RESOLUTION)
{
ERR("Invalid parameters: %dx%d", width, height);
- return 0;
+ return nullptr;
}
bool lockable = true;
diff --git a/src/OpenGL/libGLESv2/Texture.h b/src/OpenGL/libGLESv2/Texture.h
index 603ef5e..8c7c5c8 100644
--- a/src/OpenGL/libGLESv2/Texture.h
+++ b/src/OpenGL/libGLESv2/Texture.h
@@ -38,15 +38,10 @@
enum
{
- IMPLEMENTATION_MAX_TEXTURE_LEVELS = MIPMAP_LEVELS,
- IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (MIPMAP_LEVELS - 1),
- IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = OUTLINE_RESOLUTION,
- IMPLEMENTATION_MAX_COLOR_ATTACHMENTS = MAX_COLOR_ATTACHMENTS,
- IMPLEMENTATION_MAX_DRAW_BUFFERS = 8,
- IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
- IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS = MAX_UNIFORM_BUFFER_BINDINGS,
- IMPLEMENTATION_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 1,
+ IMPLEMENTATION_MAX_TEXTURE_LEVELS = sw::MIPMAP_LEVELS,
+ IMPLEMENTATION_MAX_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_CUBE_MAP_TEXTURE_SIZE = 1 << (IMPLEMENTATION_MAX_TEXTURE_LEVELS - 1),
+ IMPLEMENTATION_MAX_RENDERBUFFER_SIZE = sw::OUTLINE_RESOLUTION,
};
class Texture : public egl::Texture
diff --git a/src/OpenGL/libGLESv2/TransformFeedback.h b/src/OpenGL/libGLESv2/TransformFeedback.h
index 4f4302b..4871ee1 100644
--- a/src/OpenGL/libGLESv2/TransformFeedback.h
+++ b/src/OpenGL/libGLESv2/TransformFeedback.h
@@ -15,6 +15,7 @@
#define LIBGLESV2_TRANSFORM_FEEDBACK_H_
#include "Buffer.h"
+#include "Context.h"
#include "common/Object.hpp"
#include "Renderer/Renderer.hpp"
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index f6e9b24..44bb5a4 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -22,6 +22,7 @@
#include "Shader.h"
#include "Texture.h"
#include "Query.h"
+#include "TransformFeedback.h"
#include "common/debug.h"
#include "Common/Version.h"
@@ -2023,7 +2024,7 @@
}
// fall through
case GL_COLOR_ATTACHMENT0:
- if((attachment - GL_COLOR_ATTACHMENT0) >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
@@ -2174,7 +2175,7 @@
}
// fall through
case GL_COLOR_ATTACHMENT0:
- if((attachment - GL_COLOR_ATTACHMENT0) >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
@@ -2843,7 +2844,7 @@
}
// fall through
case GL_COLOR_ATTACHMENT0:
- if((attachment - GL_COLOR_ATTACHMENT0) >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
@@ -6628,7 +6629,7 @@
}
// fall through
case GL_COLOR_ATTACHMENT0:
- if((attachment - GL_COLOR_ATTACHMENT0) >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if((attachment - GL_COLOR_ATTACHMENT0) >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
diff --git a/src/OpenGL/libGLESv2/libGLESv3.cpp b/src/OpenGL/libGLESv2/libGLESv3.cpp
index a95908b..1adb45c 100644
--- a/src/OpenGL/libGLESv2/libGLESv3.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv3.cpp
@@ -19,6 +19,7 @@
#include "Sampler.h"
#include "Texture.h"
#include "mathutil.h"
+#include "TransformFeedback.h"
#include "common/debug.h"
#include <GLES3/gl3.h>
@@ -553,7 +554,7 @@
case GL_COLOR_ATTACHMENT31:
{
GLuint index = (src - GL_COLOR_ATTACHMENT0);
- if(index >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if(index >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
@@ -1131,7 +1132,7 @@
{
TRACE("(GLsizei n = %d, const GLenum *bufs = %p)", n, bufs);
- if(n < 0 || n > es2::IMPLEMENTATION_MAX_DRAW_BUFFERS)
+ if(n < 0 || n > MAX_DRAW_BUFFERS)
{
return error(GL_INVALID_VALUE);
}
@@ -1198,7 +1199,7 @@
case GL_COLOR_ATTACHMENT31:
{
GLuint index = (bufs[i] - GL_COLOR_ATTACHMENT0);
- if(index >= es2::IMPLEMENTATION_MAX_COLOR_ATTACHMENTS)
+ if(index >= MAX_COLOR_ATTACHMENTS)
{
return error(GL_INVALID_ENUM);
}
@@ -1960,7 +1961,7 @@
switch(target)
{
case GL_TRANSFORM_FEEDBACK_BUFFER:
- if(index >= es2::IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
+ if(index >= MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
{
return error(GL_INVALID_VALUE);
}
@@ -1972,11 +1973,11 @@
context->bindGenericTransformFeedbackBuffer(buffer);
break;
case GL_UNIFORM_BUFFER:
- if(index >= es2::IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS)
+ if(index >= MAX_UNIFORM_BUFFER_BINDINGS)
{
return error(GL_INVALID_VALUE);
}
- if(offset % es2::IMPLEMENTATION_UNIFORM_BUFFER_OFFSET_ALIGNMENT != 0)
+ if(offset % UNIFORM_BUFFER_OFFSET_ALIGNMENT != 0)
{
return error(GL_INVALID_VALUE);
}
@@ -2001,7 +2002,7 @@
switch(target)
{
case GL_TRANSFORM_FEEDBACK_BUFFER:
- if(index >= es2::IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
+ if(index >= MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
{
return error(GL_INVALID_VALUE);
}
@@ -2009,7 +2010,7 @@
context->bindGenericTransformFeedbackBuffer(buffer);
break;
case GL_UNIFORM_BUFFER:
- if(index >= es2::IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS)
+ if(index >= MAX_UNIFORM_BUFFER_BINDINGS)
{
return error(GL_INVALID_VALUE);
}
@@ -2030,7 +2031,7 @@
switch(bufferMode)
{
case GL_SEPARATE_ATTRIBS:
- if(count > es2::IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
+ if(count > MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)
{
return error(GL_INVALID_VALUE);
}
@@ -2575,7 +2576,7 @@
switch(buffer)
{
case GL_COLOR:
- if(drawbuffer < 0 || drawbuffer >= es2::IMPLEMENTATION_MAX_DRAW_BUFFERS)
+ if(drawbuffer < 0 || drawbuffer >= MAX_DRAW_BUFFERS)
{
return error(GL_INVALID_VALUE);
}
@@ -2612,7 +2613,7 @@
switch(buffer)
{
case GL_COLOR:
- if(drawbuffer < 0 || drawbuffer >= es2::IMPLEMENTATION_MAX_DRAW_BUFFERS)
+ if(drawbuffer < 0 || drawbuffer >= MAX_DRAW_BUFFERS)
{
return error(GL_INVALID_VALUE);
}
@@ -2639,7 +2640,7 @@
switch(buffer)
{
case GL_COLOR:
- if(drawbuffer < 0 || drawbuffer >= es2::IMPLEMENTATION_MAX_DRAW_BUFFERS)
+ if(drawbuffer < 0 || drawbuffer >= MAX_DRAW_BUFFERS)
{
return error(GL_INVALID_VALUE);
}
@@ -2941,7 +2942,7 @@
TRACE("(GLuint program = %d, GLuint uniformBlockIndex = %d, GLuint uniformBlockBinding = %d)",
program, uniformBlockIndex, uniformBlockBinding);
- if(uniformBlockBinding >= es2::IMPLEMENTATION_MAX_UNIFORM_BUFFER_BINDINGS)
+ if(uniformBlockBinding >= MAX_UNIFORM_BUFFER_BINDINGS)
{
return error(GL_INVALID_VALUE);
}