11#include " setup.hpp"
22
3+ #include < projectM-4/logging.h>
34#include " ConfigFile.h"
45
56#include < SDL2/SDL_hints.h>
@@ -47,7 +48,11 @@ std::string getConfigFilePath(std::string datadir_path) {
4748#if defined _MSC_VER
4849 _mkdir (projectM_home.c_str ());
4950#else
50- mkdir (projectM_home.c_str (), 0755 );
51+ #ifdef _WIN32
52+ mkdir (projectM_home.c_str ());
53+ #else
54+ mkdir (projectM_home.c_str (), 0755 );
55+ #endif
5156#endif
5257
5358 projectM_home += " /config.inp" ;
@@ -88,14 +93,14 @@ void seedRand() {
8893
8994void initGL () {
9095#ifdef USE_GLES
91- // use GLES 3.0
96+ // use GLES 3.2
9297 SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
93- SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 0 );
98+ SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 2 );
9499 SDL_GL_SetAttribute (SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
95100#else
96101 // Disabling compatibility profile
97- SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 2 );
98- SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 1 );
102+ SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
103+ SDL_GL_SetAttribute (SDL_GL_CONTEXT_MINOR_VERSION, 3 );
99104 SDL_GL_SetAttribute (SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
100105#endif
101106}
@@ -128,11 +133,39 @@ void enableGLDebugOutput() {
128133#endif
129134}
130135
136+ namespace {
137+ void logMessage (const char * message, projectm_log_level severity, void * userData)
138+ {
139+ switch (severity)
140+ {
141+ case PROJECTM_LOG_LEVEL_FATAL:
142+ case PROJECTM_LOG_LEVEL_ERROR:
143+ SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, " %s\n " , message);
144+ break ;
145+ case PROJECTM_LOG_LEVEL_WARN:
146+ SDL_LogWarn (SDL_LOG_CATEGORY_APPLICATION, " %s\n " , message);
147+ break ;
148+ case PROJECTM_LOG_LEVEL_TRACE:
149+ case PROJECTM_LOG_LEVEL_DEBUG:
150+ // redirect debug logs to info for now
151+ // SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "%s\n", message);
152+ // break;
153+ case PROJECTM_LOG_LEVEL_NOTSET:
154+ case PROJECTM_LOG_LEVEL_INFO:
155+ SDL_LogInfo (SDL_LOG_CATEGORY_APPLICATION, " %s\n " , message);
156+ break ;
157+ }
158+ }
159+ }
160+
131161// initialize SDL, openGL, config
132162projectMSDL *setupSDLApp () {
133163 projectMSDL *app;
134164 seedRand ();
135-
165+
166+ projectm_set_log_callback (&logMessage, false , nullptr );
167+ projectm_set_log_level (PROJECTM_LOG_LEVEL_DEBUG, false );
168+
136169 if (!initLoopback ())
137170 {
138171 SDL_Log (" Failed to initialize audio loopback device." );
@@ -174,12 +207,6 @@ projectMSDL *setupSDLApp() {
174207
175208 SDL_GLContext glCtx = SDL_GL_CreateContext (win);
176209
177- #if defined(_WIN32)
178- GLenum err = glewInit ();
179- #endif /* * _WIN32 */
180-
181- dumpOpenGLInfo ();
182-
183210 SDL_SetWindowTitle (win, " projectM" );
184211
185212 SDL_GL_MakeCurrent (win, glCtx); // associate GL context with main window
@@ -188,6 +215,16 @@ projectMSDL *setupSDLApp() {
188215 SDL_GL_SetSwapInterval (1 ); // enable updates synchronized with vertical retrace
189216 }
190217
218+ #ifdef USE_GLES
219+ if (!gladLoadGLES2 (reinterpret_cast <GLADloadfunc>(SDL_GL_GetProcAddress))) {
220+ SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, " Error loading GLAD for GLES2\n " );
221+ }
222+ #else
223+ if (!gladLoadGL (reinterpret_cast <GLADloadfunc>(SDL_GL_GetProcAddress))) {
224+ SDL_LogError (SDL_LOG_CATEGORY_APPLICATION, " Error loading GLAD for GL Core Profile\n " );
225+ }
226+ #endif
227+
191228 std::string base_path = DATADIR_PATH;
192229 SDL_LogInfo (SDL_LOG_CATEGORY_APPLICATION, " Using data directory: %s\n " , base_path.c_str ());
193230
@@ -248,7 +285,6 @@ projectMSDL *setupSDLApp() {
248285 app->fakeAudio = true ;
249286#endif
250287
251- enableGLDebugOutput ();
252288 configureLoopback (app);
253289
254290#if !FAKE_AUDIO && !WASAPI_LOOPBACK
0 commit comments