mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-13 03:28:19 +00:00
Make GLES3 only makros
This commit is contained in:
parent
f5f05f3dcb
commit
ecc5a7af81
|
@ -52,6 +52,7 @@
|
||||||
#define CONF_PLATFORM_LINUX 1
|
#define CONF_PLATFORM_LINUX 1
|
||||||
#define PLATFORM_STRING "linux"
|
#define PLATFORM_STRING "linux"
|
||||||
#define CONF_BACKEND_OPENGL_ES 1
|
#define CONF_BACKEND_OPENGL_ES 1
|
||||||
|
#define CONF_BACKEND_OPENGL_ES3 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNU__) || defined(__gnu__)
|
#if defined(__GNU__) || defined(__gnu__)
|
||||||
|
|
|
@ -7,12 +7,14 @@
|
||||||
#else
|
#else
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
#include "SDL_opengles2.h"
|
#include "SDL_opengles2.h"
|
||||||
#include <GLES/gl.h>
|
|
||||||
#include <GLES3/gl3.h>
|
#include <GLES3/gl3.h>
|
||||||
#define glOrtho glOrthof
|
|
||||||
#define GL_TEXTURE_2D_ARRAY_EXT GL_TEXTURE_2D_ARRAY
|
#define GL_TEXTURE_2D_ARRAY_EXT GL_TEXTURE_2D_ARRAY
|
||||||
// GLES doesnt support GL_QUADS, but the code is also never executed
|
// GLES doesnt support GL_QUADS, but the code is also never executed
|
||||||
#define GL_QUADS GL_TRIANGLES
|
#define GL_QUADS GL_TRIANGLES
|
||||||
|
#ifndef CONF_BACKEND_OPENGL_ES3
|
||||||
|
#include <GLES/gl.h>
|
||||||
|
#define glOrtho glOrthof
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <engine/client/opengl_sl.h>
|
#include <engine/client/opengl_sl.h>
|
||||||
|
@ -84,6 +86,7 @@ bool CCommandProcessorFragment_OpenGL::IsTexturedState(const CCommandBuffer::SSt
|
||||||
|
|
||||||
void CCommandProcessorFragment_OpenGL::SetState(const CCommandBuffer::SState &State, bool Use2DArrayTextures)
|
void CCommandProcessorFragment_OpenGL::SetState(const CCommandBuffer::SState &State, bool Use2DArrayTextures)
|
||||||
{
|
{
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
// blend
|
// blend
|
||||||
switch(State.m_BlendMode)
|
switch(State.m_BlendMode)
|
||||||
{
|
{
|
||||||
|
@ -184,6 +187,7 @@ void CCommandProcessorFragment_OpenGL::SetState(const CCommandBuffer::SState &St
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
glOrtho(State.m_ScreenTL.x, State.m_ScreenBR.x, State.m_ScreenBR.y, State.m_ScreenTL.y, -10.0f, 10.f);
|
glOrtho(State.m_ScreenTL.x, State.m_ScreenBR.x, State.m_ScreenBR.y, State.m_ScreenTL.y, -10.0f, 10.f);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ParseVersionString(EBackendType BackendType, const char *pStr, int &VersionMajor, int &VersionMinor, int &VersionPatch)
|
static void ParseVersionString(EBackendType BackendType, const char *pStr, int &VersionMajor, int &VersionMinor, int &VersionPatch)
|
||||||
|
@ -304,9 +308,14 @@ void CCommandProcessorFragment_OpenGL::InitOpenGL(const SCommand_Init *pCommand)
|
||||||
glDisable(GL_CULL_FACE);
|
glDisable(GL_CULL_FACE);
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
if(!IsNewApi())
|
if(!IsNewApi())
|
||||||
|
{
|
||||||
glAlphaFunc(GL_GREATER, 0);
|
glAlphaFunc(GL_GREATER, 0);
|
||||||
glEnable(GL_ALPHA_TEST);
|
glEnable(GL_ALPHA_TEST);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
glDepthMask(0);
|
glDepthMask(0);
|
||||||
|
|
||||||
#ifndef CONF_BACKEND_OPENGL_ES
|
#ifndef CONF_BACKEND_OPENGL_ES
|
||||||
|
@ -685,6 +694,7 @@ void CCommandProcessorFragment_OpenGL::Cmd_Texture_Destroy(const CCommandBuffer:
|
||||||
|
|
||||||
void CCommandProcessorFragment_OpenGL::Cmd_Texture_Create(const CCommandBuffer::SCommand_Texture_Create *pCommand)
|
void CCommandProcessorFragment_OpenGL::Cmd_Texture_Create(const CCommandBuffer::SCommand_Texture_Create *pCommand)
|
||||||
{
|
{
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
int Width = pCommand->m_Width;
|
int Width = pCommand->m_Width;
|
||||||
int Height = pCommand->m_Height;
|
int Height = pCommand->m_Height;
|
||||||
void *pTexData = pCommand->m_pData;
|
void *pTexData = pCommand->m_pData;
|
||||||
|
@ -916,6 +926,7 @@ void CCommandProcessorFragment_OpenGL::Cmd_Texture_Create(const CCommandBuffer::
|
||||||
m_pTextureMemoryUsage->store(m_pTextureMemoryUsage->load(std::memory_order_relaxed) + m_Textures[pCommand->m_Slot].m_MemSize, std::memory_order_relaxed);
|
m_pTextureMemoryUsage->store(m_pTextureMemoryUsage->load(std::memory_order_relaxed) + m_Textures[pCommand->m_Slot].m_MemSize, std::memory_order_relaxed);
|
||||||
|
|
||||||
free(pTexData);
|
free(pTexData);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCommandProcessorFragment_OpenGL::Cmd_Clear(const CCommandBuffer::SCommand_Clear *pCommand)
|
void CCommandProcessorFragment_OpenGL::Cmd_Clear(const CCommandBuffer::SCommand_Clear *pCommand)
|
||||||
|
@ -926,6 +937,7 @@ void CCommandProcessorFragment_OpenGL::Cmd_Clear(const CCommandBuffer::SCommand_
|
||||||
|
|
||||||
void CCommandProcessorFragment_OpenGL::Cmd_Render(const CCommandBuffer::SCommand_Render *pCommand)
|
void CCommandProcessorFragment_OpenGL::Cmd_Render(const CCommandBuffer::SCommand_Render *pCommand)
|
||||||
{
|
{
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
SetState(pCommand->m_State);
|
SetState(pCommand->m_State);
|
||||||
|
|
||||||
glVertexPointer(2, GL_FLOAT, sizeof(CCommandBuffer::SVertex), (char *)pCommand->m_pVertices);
|
glVertexPointer(2, GL_FLOAT, sizeof(CCommandBuffer::SVertex), (char *)pCommand->m_pVertices);
|
||||||
|
@ -951,6 +963,7 @@ void CCommandProcessorFragment_OpenGL::Cmd_Render(const CCommandBuffer::SCommand
|
||||||
default:
|
default:
|
||||||
dbg_msg("render", "unknown primtype %d\n", pCommand->m_PrimType);
|
dbg_msg("render", "unknown primtype %d\n", pCommand->m_PrimType);
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCommandProcessorFragment_OpenGL::Cmd_Screenshot(const CCommandBuffer::SCommand_Screenshot *pCommand)
|
void CCommandProcessorFragment_OpenGL::Cmd_Screenshot(const CCommandBuffer::SCommand_Screenshot *pCommand)
|
||||||
|
@ -1240,6 +1253,7 @@ void CCommandProcessorFragment_OpenGL2::SetState(const CCommandBuffer::SState &S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
bool CCommandProcessorFragment_OpenGL2::DoAnalyzeStep(size_t StepN, size_t CheckCount, size_t VerticesCount, uint8_t aFakeTexture[], size_t SingleImageSize)
|
bool CCommandProcessorFragment_OpenGL2::DoAnalyzeStep(size_t StepN, size_t CheckCount, size_t VerticesCount, uint8_t aFakeTexture[], size_t SingleImageSize)
|
||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
@ -2277,3 +2291,5 @@ void CCommandProcessorFragment_OpenGL2::Cmd_RenderTileLayer(const CCommandBuffer
|
||||||
glUseProgram(0);
|
glUseProgram(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -591,6 +591,7 @@ void CGraphicsBackend_SDL_OpenGL::ClampDriverVersion(EBackendType BackendType)
|
||||||
}
|
}
|
||||||
else if(BackendType == BACKEND_TYPE_OPENGL_ES)
|
else if(BackendType == BACKEND_TYPE_OPENGL_ES)
|
||||||
{
|
{
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
// Make sure GLES is set to 1.0 (which is equivalent to OpenGL 1.3), if its not set to >= 3.0(which is equivalent to OpenGL 3.3)
|
// Make sure GLES is set to 1.0 (which is equivalent to OpenGL 1.3), if its not set to >= 3.0(which is equivalent to OpenGL 3.3)
|
||||||
if(g_Config.m_GfxOpenGLMajor < 3)
|
if(g_Config.m_GfxOpenGLMajor < 3)
|
||||||
{
|
{
|
||||||
|
@ -601,6 +602,11 @@ void CGraphicsBackend_SDL_OpenGL::ClampDriverVersion(EBackendType BackendType)
|
||||||
// GLES also doesnt know GL_QUAD
|
// GLES also doesnt know GL_QUAD
|
||||||
g_Config.m_GfxQuadAsTriangle = 1;
|
g_Config.m_GfxQuadAsTriangle = 1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
g_Config.m_GfxOpenGLMajor = 3;
|
||||||
|
g_Config.m_GfxOpenGLMinor = 0;
|
||||||
|
g_Config.m_GfxOpenGLPatch = 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,13 @@
|
||||||
#else
|
#else
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
#include "SDL_opengles2.h"
|
#include "SDL_opengles2.h"
|
||||||
#include <GLES/gl.h>
|
|
||||||
#include <GLES3/gl3.h>
|
#include <GLES3/gl3.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONF_BACKEND_OPENGL_ES3
|
||||||
|
#define BACKEND_GL_MODERN_API 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "blocklist_driver.h"
|
#include "blocklist_driver.h"
|
||||||
#include "graphics_threaded.h"
|
#include "graphics_threaded.h"
|
||||||
|
|
||||||
|
@ -285,17 +288,20 @@ class CCommandProcessorFragment_OpenGL2 : public CCommandProcessorFragment_OpenG
|
||||||
|
|
||||||
std::vector<SBufferObject> m_BufferObjectIndices;
|
std::vector<SBufferObject> m_BufferObjectIndices;
|
||||||
|
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
bool DoAnalyzeStep(size_t StepN, size_t CheckCount, size_t VerticesCount, uint8_t aFakeTexture[], size_t SingleImageSize);
|
bool DoAnalyzeStep(size_t StepN, size_t CheckCount, size_t VerticesCount, uint8_t aFakeTexture[], size_t SingleImageSize);
|
||||||
bool IsTileMapAnalysisSucceeded();
|
bool IsTileMapAnalysisSucceeded();
|
||||||
|
|
||||||
void RenderBorderTileEmulation(SBufferContainer &BufferContainer, const CCommandBuffer::SState &State, const float *pColor, const char *pBuffOffset, unsigned int DrawNum, const float *pOffset, const float *pDir, int JumpIndex);
|
void RenderBorderTileEmulation(SBufferContainer &BufferContainer, const CCommandBuffer::SState &State, const float *pColor, const char *pBuffOffset, unsigned int DrawNum, const float *pOffset, const float *pDir, int JumpIndex);
|
||||||
void RenderBorderTileLineEmulation(SBufferContainer &BufferContainer, const CCommandBuffer::SState &State, const float *pColor, const char *pBuffOffset, unsigned int IndexDrawNum, unsigned int DrawNum, const float *pOffset, const float *pDir);
|
void RenderBorderTileLineEmulation(SBufferContainer &BufferContainer, const CCommandBuffer::SState &State, const float *pColor, const char *pBuffOffset, unsigned int IndexDrawNum, unsigned int DrawNum, const float *pOffset, const float *pDir);
|
||||||
|
#endif
|
||||||
|
|
||||||
void UseProgram(CGLSLTWProgram *pProgram);
|
void UseProgram(CGLSLTWProgram *pProgram);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void SetState(const CCommandBuffer::SState &State, CGLSLTWProgram *pProgram, bool Use2DArrayTextures = false);
|
void SetState(const CCommandBuffer::SState &State, CGLSLTWProgram *pProgram, bool Use2DArrayTextures = false);
|
||||||
|
|
||||||
|
#ifndef BACKEND_GL_MODERN_API
|
||||||
void Cmd_Init(const SCommand_Init *pCommand) override;
|
void Cmd_Init(const SCommand_Init *pCommand) override;
|
||||||
|
|
||||||
void Cmd_RenderTex3D(const CCommandBuffer::SCommand_RenderTex3D *pCommand) override;
|
void Cmd_RenderTex3D(const CCommandBuffer::SCommand_RenderTex3D *pCommand) override;
|
||||||
|
@ -314,6 +320,7 @@ protected:
|
||||||
void Cmd_RenderTileLayer(const CCommandBuffer::SCommand_RenderTileLayer *pCommand) override;
|
void Cmd_RenderTileLayer(const CCommandBuffer::SCommand_RenderTileLayer *pCommand) override;
|
||||||
void Cmd_RenderBorderTile(const CCommandBuffer::SCommand_RenderBorderTile *pCommand) override;
|
void Cmd_RenderBorderTile(const CCommandBuffer::SCommand_RenderBorderTile *pCommand) override;
|
||||||
void Cmd_RenderBorderTileLine(const CCommandBuffer::SCommand_RenderBorderTileLine *pCommand) override;
|
void Cmd_RenderBorderTileLine(const CCommandBuffer::SCommand_RenderBorderTileLine *pCommand) override;
|
||||||
|
#endif
|
||||||
|
|
||||||
CGLSLTileProgram *m_pTileProgram;
|
CGLSLTileProgram *m_pTileProgram;
|
||||||
CGLSLTileProgram *m_pTileProgramTextured;
|
CGLSLTileProgram *m_pTileProgramTextured;
|
||||||
|
|
|
@ -5,20 +5,11 @@
|
||||||
|
|
||||||
#if defined(CONF_BACKEND_OPENGL_ES)
|
#if defined(CONF_BACKEND_OPENGL_ES)
|
||||||
#define GL_GLEXT_PROTOTYPES
|
#define GL_GLEXT_PROTOTYPES
|
||||||
#include <GL/glu.h>
|
#include <GLES3/gl3.h>
|
||||||
#include <GLES/gl.h>
|
|
||||||
#include <GLES/glext.h>
|
|
||||||
#define glOrtho glOrthof
|
#define glOrtho glOrthof
|
||||||
#else
|
#else
|
||||||
#include "SDL_opengl.h"
|
#include "SDL_opengl.h"
|
||||||
|
|
||||||
#if defined(CONF_PLATFORM_MACOS)
|
|
||||||
#include "OpenGL/glu.h"
|
|
||||||
#else
|
|
||||||
#include "GL/glu.h"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <libavcodec/avcodec.h>
|
#include <libavcodec/avcodec.h>
|
||||||
#include <libavformat/avformat.h>
|
#include <libavformat/avformat.h>
|
||||||
|
|
Loading…
Reference in a new issue