GUI: GL render backend now supports ES
This commit is contained in:
parent
20b4ad5cbd
commit
b2cf64c117
|
@ -61,6 +61,12 @@ else()
|
||||||
set(WITH_RENDER_OPENGL_DEFAULT ON)
|
set(WITH_RENDER_OPENGL_DEFAULT ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (ANDROID)
|
||||||
|
set(USE_GLES_DEFAULT ON)
|
||||||
|
else()
|
||||||
|
set(USE_GLES_DEFAULT OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(BUILD_GUI "Build the tracker (disable to build only a headless player)" ${BUILD_GUI_DEFAULT})
|
option(BUILD_GUI "Build the tracker (disable to build only a headless player)" ${BUILD_GUI_DEFAULT})
|
||||||
option(USE_RTMIDI "Build with MIDI support using RtMidi." ${USE_RTMIDI_DEFAULT})
|
option(USE_RTMIDI "Build with MIDI support using RtMidi." ${USE_RTMIDI_DEFAULT})
|
||||||
option(USE_SDL2 "Build with SDL2. Required to build with GUI." ${USE_SDL2_DEFAULT})
|
option(USE_SDL2 "Build with SDL2. Required to build with GUI." ${USE_SDL2_DEFAULT})
|
||||||
|
@ -69,6 +75,7 @@ option(USE_BACKWARD "Use backward-cpp to print a backtrace on crash/abort." ${US
|
||||||
option(WITH_JACK "Whether to build with JACK support. Auto-detects if JACK is available" ${WITH_JACK_DEFAULT})
|
option(WITH_JACK "Whether to build with JACK support. Auto-detects if JACK is available" ${WITH_JACK_DEFAULT})
|
||||||
option(WITH_RENDER_SDL "Whether to build with the SDL_Renderer render backend." ${WITH_RENDER_SDL_DEFAULT})
|
option(WITH_RENDER_SDL "Whether to build with the SDL_Renderer render backend." ${WITH_RENDER_SDL_DEFAULT})
|
||||||
option(WITH_RENDER_OPENGL "Whether to build with the OpenGL render backend." ${WITH_RENDER_OPENGL_DEFAULT})
|
option(WITH_RENDER_OPENGL "Whether to build with the OpenGL render backend." ${WITH_RENDER_OPENGL_DEFAULT})
|
||||||
|
option(USE_GLES "Use OpenGL ES for the OpenGL render backend." ${USE_GLES_DEFAULT})
|
||||||
option(SYSTEM_FFTW "Use a system-installed version of FFTW instead of the vendored one" OFF)
|
option(SYSTEM_FFTW "Use a system-installed version of FFTW instead of the vendored one" OFF)
|
||||||
option(SYSTEM_FMT "Use a system-installed version of fmt instead of the vendored one" OFF)
|
option(SYSTEM_FMT "Use a system-installed version of fmt instead of the vendored one" OFF)
|
||||||
option(SYSTEM_LIBSNDFILE "Use a system-installed version of libsndfile instead of the vendored one" OFF)
|
option(SYSTEM_LIBSNDFILE "Use a system-installed version of libsndfile instead of the vendored one" OFF)
|
||||||
|
@ -704,8 +711,14 @@ if (WITH_RENDER_OPENGL)
|
||||||
list(APPEND GUI_SOURCES src/gui/render/renderGL.cpp)
|
list(APPEND GUI_SOURCES src/gui/render/renderGL.cpp)
|
||||||
list(APPEND GUI_SOURCES extern/imgui_patched/backends/imgui_impl_opengl3.cpp)
|
list(APPEND GUI_SOURCES extern/imgui_patched/backends/imgui_impl_opengl3.cpp)
|
||||||
list(APPEND DEPENDENCIES_DEFINES HAVE_RENDER_GL)
|
list(APPEND DEPENDENCIES_DEFINES HAVE_RENDER_GL)
|
||||||
|
if (USE_GLES)
|
||||||
|
list(APPEND DEPENDENCIES_DEFINES USE_GLES)
|
||||||
|
list(APPEND DEPENDENCIES_DEFINES IMGUI_IMPL_OPENGL_ES2)
|
||||||
|
endif()
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
list(APPEND DEPENDENCIES_LIBRARIES opengl32)
|
list(APPEND DEPENDENCIES_LIBRARIES opengl32)
|
||||||
|
elseif(USE_GLES)
|
||||||
|
list(APPEND DEPENDENCIES_LIBRARIES GLESv2)
|
||||||
else()
|
else()
|
||||||
list(APPEND DEPENDENCIES_LIBRARIES GL)
|
list(APPEND DEPENDENCIES_LIBRARIES GL)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -19,7 +19,13 @@
|
||||||
|
|
||||||
#include "renderGL.h"
|
#include "renderGL.h"
|
||||||
#include "../../ta-log.h"
|
#include "../../ta-log.h"
|
||||||
|
#ifdef USE_GLES
|
||||||
|
#include "SDL_opengles2.h"
|
||||||
|
#define PIXEL_FORMAT GL_RGBA
|
||||||
|
#else
|
||||||
#include "SDL_opengl.h"
|
#include "SDL_opengl.h"
|
||||||
|
#define PIXEL_FORMAT GL_UNSIGNED_INT_8_8_8_8_REV
|
||||||
|
#endif
|
||||||
#include "backends/imgui_impl_opengl3.h"
|
#include "backends/imgui_impl_opengl3.h"
|
||||||
|
|
||||||
#define C(x) x; if (glGetError()!=GL_NO_ERROR) logW("OpenGL error in %s:%d: " #x,__FILE__,__LINE__);
|
#define C(x) x; if (glGetError()!=GL_NO_ERROR) logW("OpenGL error in %s:%d: " #x,__FILE__,__LINE__);
|
||||||
|
@ -138,7 +144,7 @@ bool FurnaceGUIRenderGL::unlockTexture(void* which) {
|
||||||
if (t->lockedData==NULL) return false;
|
if (t->lockedData==NULL) return false;
|
||||||
|
|
||||||
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
||||||
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,t->width,t->height,0,GL_RGBA,GL_UNSIGNED_INT_8_8_8_8_REV,t->lockedData));
|
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,t->width,t->height,0,GL_RGBA,PIXEL_FORMAT,t->lockedData));
|
||||||
|
|
||||||
C(glFlush());
|
C(glFlush());
|
||||||
delete[] t->lockedData;
|
delete[] t->lockedData;
|
||||||
|
@ -153,7 +159,7 @@ bool FurnaceGUIRenderGL::updateTexture(void* which, void* data, int pitch) {
|
||||||
if (t->width*4!=pitch) return false;
|
if (t->width*4!=pitch) return false;
|
||||||
|
|
||||||
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
||||||
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,t->width,t->height,0,GL_RGBA,GL_UNSIGNED_INT_8_8_8_8_REV,data));
|
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,t->width,t->height,0,GL_RGBA,PIXEL_FORMAT,data));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,7 +169,7 @@ void* FurnaceGUIRenderGL::createTexture(bool dynamic, int width, int height) {
|
||||||
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
C(glBindTexture(GL_TEXTURE_2D,t->id));
|
||||||
C(glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR));
|
C(glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR));
|
||||||
C(glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR));
|
C(glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR));
|
||||||
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0,GL_RGBA,GL_UNSIGNED_INT_8_8_8_8_REV,NULL));
|
C(glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,width,height,0,GL_RGBA,PIXEL_FORMAT,NULL));
|
||||||
C(furActiveTexture(GL_TEXTURE0));
|
C(furActiveTexture(GL_TEXTURE0));
|
||||||
t->width=width;
|
t->width=width;
|
||||||
t->height=height;
|
t->height=height;
|
||||||
|
@ -364,4 +370,4 @@ bool FurnaceGUIRenderGL::quit() {
|
||||||
|
|
||||||
void FurnaceGUIRenderGL::quitGUI() {
|
void FurnaceGUIRenderGL::quitGUI() {
|
||||||
ImGui_ImplOpenGL3_Shutdown();
|
ImGui_ImplOpenGL3_Shutdown();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue