summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-02-16 18:00:19 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2016-02-16 18:00:19 +0100
commit38e054c76552c1b4c1598a489b4bacf614f0949d (patch)
treece3ecb6be5947909ce8b83c7632d34eb69d1f7ac /src/osd
parent9eb2734495cda6ff0391f317ca2565b421476738 (diff)
placed back OPENGL check since GL is not same as GLES (nw)
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/modules/lib/osdobj_common.cpp2
-rw-r--r--src/osd/modules/opengl/osd_opengl.h4
-rw-r--r--src/osd/modules/render/draw13.cpp4
-rw-r--r--src/osd/sdl/osdsdl.h2
-rw-r--r--src/osd/sdl/sdlmain.cpp5
-rw-r--r--src/osd/sdl/video.cpp106
-rw-r--r--src/osd/sdl/window.cpp2
-rw-r--r--src/osd/windows/video.cpp92
-rw-r--r--src/osd/windows/video.h2
-rw-r--r--src/osd/windows/window.cpp4
10 files changed, 128 insertions, 95 deletions
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp
index c65d60b9527..b36bbf60df3 100644
--- a/src/osd/modules/lib/osdobj_common.cpp
+++ b/src/osd/modules/lib/osdobj_common.cpp
@@ -86,6 +86,7 @@ const options_entry osd_options::s_option_entries[] =
{ OSDOPTION_FILTER ";glfilter;flt", "1", OPTION_BOOLEAN, "enable bilinear filtering on screen output" },
{ OSDOPTION_PRESCALE, "1", OPTION_INTEGER, "scale screen rendering by this amount in software" },
+#if USE_OPENGL
{ NULL, NULL, OPTION_HEADER, "OpenGL-SPECIFIC OPTIONS" },
{ OSDOPTION_GL_FORCEPOW2TEXTURE, "0", OPTION_BOOLEAN, "force power of two textures (default no)" },
{ OSDOPTION_GL_NOTEXTURERECT, "0", OPTION_BOOLEAN, "don't use OpenGL GL_ARB_texture_rectangle (default on)" },
@@ -113,6 +114,7 @@ const options_entry osd_options::s_option_entries[] =
{ OSDOPTION_SHADER_SCREEN "7", OSDOPTVAL_NONE, OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 7" },
{ OSDOPTION_SHADER_SCREEN "8", OSDOPTVAL_NONE, OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 8" },
{ OSDOPTION_SHADER_SCREEN "9", OSDOPTVAL_NONE, OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 9" },
+#endif
{ NULL, NULL, OPTION_HEADER, "OSD SOUND OPTIONS" },
{ OSDOPTION_SOUND, OSDOPTVAL_AUTO, OPTION_STRING, "sound output method: " },
diff --git a/src/osd/modules/opengl/osd_opengl.h b/src/osd/modules/opengl/osd_opengl.h
index 481925045e5..26f577f343e 100644
--- a/src/osd/modules/opengl/osd_opengl.h
+++ b/src/osd/modules/opengl/osd_opengl.h
@@ -12,6 +12,8 @@
#ifndef _OSD_OPENGL_H
#define _OSD_OPENGL_H
+ #if USE_OPENGL
+
/* equivalent to #include <GL/gl.h>
* #include <GL/glext.h>
*/
@@ -109,6 +111,8 @@
#endif /* USE_DISPATCH_GL */
+ #endif /* USE_OPENGL */
+
#endif /* _OSD_OPENGL_H */
#else /* MANGLE */
diff --git a/src/osd/modules/render/draw13.cpp b/src/osd/modules/render/draw13.cpp
index 623840525ad..320cc9f3a62 100644
--- a/src/osd/modules/render/draw13.cpp
+++ b/src/osd/modules/render/draw13.cpp
@@ -546,8 +546,12 @@ int drawsdl2_init(running_machine &machine, osd_draw_callbacks *callbacks)
osd_printf_verbose("Using SDL native texturing driver (SDL 2.0+)\n");
+#if USE_OPENGL
// Load the GL library now - else MT will fail
const char *stemp = downcast<sdl_options &>(machine.options()).gl_lib();
+#else
+ const char *stemp = NULL;
+#endif
if (stemp != NULL && strcmp(stemp, OSDOPTVAL_AUTO) == 0)
stemp = NULL;
diff --git a/src/osd/sdl/osdsdl.h b/src/osd/sdl/osdsdl.h
index 7ba8832da6e..bca299eb49d 100644
--- a/src/osd/sdl/osdsdl.h
+++ b/src/osd/sdl/osdsdl.h
@@ -122,7 +122,9 @@ public:
const char *video_driver() const { return value(SDLOPTION_VIDEODRIVER); }
const char *render_driver() const { return value(SDLOPTION_RENDERDRIVER); }
const char *audio_driver() const { return value(SDLOPTION_AUDIODRIVER); }
+#if USE_OPENGL
const char *gl_lib() const { return value(SDLOPTION_GL_LIB); }
+#endif
private:
static const options_entry s_option_entries[];
diff --git a/src/osd/sdl/sdlmain.cpp b/src/osd/sdl/sdlmain.cpp
index 43c49480d2b..530aa41c9d4 100644
--- a/src/osd/sdl/sdlmain.cpp
+++ b/src/osd/sdl/sdlmain.cpp
@@ -164,7 +164,9 @@ const options_entry sdl_options::s_option_entries[] =
{ SDLOPTION_VIDEODRIVER ";vd", OSDOPTVAL_AUTO, OPTION_STRING, "sdl video driver to use ('x11', 'directfb', ... or 'auto' for SDL default" },
{ SDLOPTION_RENDERDRIVER ";rd", OSDOPTVAL_AUTO, OPTION_STRING, "sdl render driver to use ('software', 'opengl', 'directfb' ... or 'auto' for SDL default" },
{ SDLOPTION_AUDIODRIVER ";ad", OSDOPTVAL_AUTO, OPTION_STRING, "sdl audio driver to use ('alsa', 'arts', ... or 'auto' for SDL default" },
+#if USE_OPENGL
{ SDLOPTION_GL_LIB, SDLOPTVAL_GLLIB, OPTION_STRING, "alternative libGL.so to use; 'auto' for system default" },
+#endif
// End of list
{ NULL }
@@ -343,6 +345,7 @@ static void defines_verbose(void)
osd_printf_verbose("\n");
osd_printf_verbose("SDL/OpenGL defines: ");
osd_printf_verbose("SDL_COMPILEDVERSION=%d ", SDL_COMPILEDVERSION);
+ MACRO_VERBOSE(USE_OPENGL);
MACRO_VERBOSE(USE_DISPATCH_GL);
osd_printf_verbose("\n");
osd_printf_verbose("Compiler defines A: ");
@@ -484,6 +487,7 @@ void sdl_osd_interface::init(running_machine &machine)
/* Set the SDL environment variable for drivers wanting to load the
* lib at startup.
*/
+#if USE_OPENGL
/* FIXME: move lib loading code from drawogl.c here */
stemp = options().gl_lib();
@@ -492,6 +496,7 @@ void sdl_osd_interface::init(running_machine &machine)
osd_setenv("SDL_VIDEO_GL_DRIVER", stemp, 1);
osd_printf_verbose("Setting SDL_VIDEO_GL_DRIVER = '%s' ...\n", stemp);
}
+#endif
/* get number of processors */
stemp = options().numprocessors();
diff --git a/src/osd/sdl/video.cpp b/src/osd/sdl/video.cpp
index 578c2bde327..ca7286d5696 100644
--- a/src/osd/sdl/video.cpp
+++ b/src/osd/sdl/video.cpp
@@ -313,12 +313,14 @@ static void check_osd_inputs(running_machine &machine)
machine.ui().popup_time(1, "Keepaspect %s", video_config.keepaspect? "enabled":"disabled");
}
- //FIXME: on a per window basis
- if (machine.ui_input().pressed(IPT_OSD_5))
- {
- video_config.filter = !video_config.filter;
- machine.ui().popup_time(1, "Filter %s", video_config.filter? "enabled":"disabled");
- }
+ #if (USE_OPENGL)
+ //FIXME: on a per window basis
+ if (machine.ui_input().pressed(IPT_OSD_5))
+ {
+ video_config.filter = !video_config.filter;
+ machine.ui().popup_time(1, "Filter %s", video_config.filter? "enabled":"disabled");
+ }
+ #endif
if (machine.ui_input().pressed(IPT_OSD_6))
window->modify_prescale(-1);
@@ -375,7 +377,7 @@ void sdl_osd_interface::extract_video_config()
if (options().seconds_to_run() == 0)
osd_printf_warning("Warning: -video none doesn't make much sense without -seconds_to_run\n");
}
- else if (strcmp(stemp, SDLOPTVAL_OPENGL) == 0)
+ else if (USE_OPENGL && (strcmp(stemp, SDLOPTVAL_OPENGL) == 0))
video_config.mode = VIDEO_MODE_OPENGL;
else if ((strcmp(stemp, SDLOPTVAL_SDL2ACCEL) == 0))
{
@@ -407,62 +409,64 @@ void sdl_osd_interface::extract_video_config()
osd_printf_warning("Invalid prescale option, reverting to '1'\n");
video_config.prescale = 1;
}
- // default to working video please
- video_config.forcepow2texture = options().gl_force_pow2_texture();
- video_config.allowtexturerect = !(options().gl_no_texture_rect());
- video_config.vbo = options().gl_vbo();
- video_config.pbo = options().gl_pbo();
- video_config.glsl = options().gl_glsl();
- if ( video_config.glsl )
- {
- int i;
+ #if (USE_OPENGL)
+ // default to working video please
+ video_config.forcepow2texture = options().gl_force_pow2_texture();
+ video_config.allowtexturerect = !(options().gl_no_texture_rect());
+ video_config.vbo = options().gl_vbo();
+ video_config.pbo = options().gl_pbo();
+ video_config.glsl = options().gl_glsl();
+ if ( video_config.glsl )
+ {
+ int i;
- video_config.glsl_filter = options().glsl_filter();
+ video_config.glsl_filter = options().glsl_filter();
- video_config.glsl_shader_mamebm_num=0;
+ video_config.glsl_shader_mamebm_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- stemp = options().shader_mame(i);
- if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ for(i=0; i<GLSL_SHADER_MAX; i++)
{
- video_config.glsl_shader_mamebm[i] = (char *) malloc(strlen(stemp)+1);
- strcpy(video_config.glsl_shader_mamebm[i], stemp);
- video_config.glsl_shader_mamebm_num++;
- } else {
- video_config.glsl_shader_mamebm[i] = NULL;
+ stemp = options().shader_mame(i);
+ if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ {
+ video_config.glsl_shader_mamebm[i] = (char *) malloc(strlen(stemp)+1);
+ strcpy(video_config.glsl_shader_mamebm[i], stemp);
+ video_config.glsl_shader_mamebm_num++;
+ } else {
+ video_config.glsl_shader_mamebm[i] = NULL;
+ }
}
- }
- video_config.glsl_shader_scrn_num=0;
+ video_config.glsl_shader_scrn_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- stemp = options().shader_screen(i);
- if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ for(i=0; i<GLSL_SHADER_MAX; i++)
+ {
+ stemp = options().shader_screen(i);
+ if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ {
+ video_config.glsl_shader_scrn[i] = (char *) malloc(strlen(stemp)+1);
+ strcpy(video_config.glsl_shader_scrn[i], stemp);
+ video_config.glsl_shader_scrn_num++;
+ } else {
+ video_config.glsl_shader_scrn[i] = NULL;
+ }
+ }
+ } else {
+ int i;
+ video_config.glsl_filter = 0;
+ video_config.glsl_shader_mamebm_num=0;
+ for(i=0; i<GLSL_SHADER_MAX; i++)
+ {
+ video_config.glsl_shader_mamebm[i] = NULL;
+ }
+ video_config.glsl_shader_scrn_num=0;
+ for(i=0; i<GLSL_SHADER_MAX; i++)
{
- video_config.glsl_shader_scrn[i] = (char *) malloc(strlen(stemp)+1);
- strcpy(video_config.glsl_shader_scrn[i], stemp);
- video_config.glsl_shader_scrn_num++;
- } else {
video_config.glsl_shader_scrn[i] = NULL;
}
}
- } else {
- int i;
- video_config.glsl_filter = 0;
- video_config.glsl_shader_mamebm_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- video_config.glsl_shader_mamebm[i] = NULL;
- }
- video_config.glsl_shader_scrn_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- video_config.glsl_shader_scrn[i] = NULL;
- }
- }
+ #endif /* USE_OPENGL */
// misc options: sanity check values
// global options: sanity check values
diff --git a/src/osd/sdl/window.cpp b/src/osd/sdl/window.cpp
index e94a64a24dc..113a00b47bf 100644
--- a/src/osd/sdl/window.cpp
+++ b/src/osd/sdl/window.cpp
@@ -223,11 +223,13 @@ bool sdl_osd_interface::window_init()
}
// initialize the drawers
+#if USE_OPENGL
if (video_config.mode == VIDEO_MODE_OPENGL)
{
if (drawogl_init(machine(), &draw))
video_config.mode = VIDEO_MODE_SOFT;
}
+#endif
if (video_config.mode == VIDEO_MODE_SDL2ACCEL)
{
if (drawsdl2_init(machine(), &draw))
diff --git a/src/osd/windows/video.cpp b/src/osd/windows/video.cpp
index d62fe36c2cb..32df3d25ba4 100644
--- a/src/osd/windows/video.cpp
+++ b/src/osd/windows/video.cpp
@@ -385,8 +385,10 @@ void windows_osd_interface::extract_video_config()
if (options().seconds_to_run() == 0)
osd_printf_warning("Warning: -video none doesn't make much sense without -seconds_to_run\n");
}
+#if (USE_OPENGL)
else if (strcmp(stemp, "opengl") == 0)
video_config.mode = VIDEO_MODE_OPENGL;
+#endif
else
{
osd_printf_warning("Invalid video value %s; reverting to gdi\n", stemp);
@@ -405,62 +407,64 @@ void windows_osd_interface::extract_video_config()
osd_printf_warning("Invalid prescale option, reverting to '1'\n");
video_config.prescale = 1;
}
- // default to working video please
- video_config.forcepow2texture = options().gl_force_pow2_texture();
- video_config.allowtexturerect = !(options().gl_no_texture_rect());
- video_config.vbo = options().gl_vbo();
- video_config.pbo = options().gl_pbo();
- video_config.glsl = options().gl_glsl();
- if ( video_config.glsl )
- {
- int i;
+ #if (USE_OPENGL)
+ // default to working video please
+ video_config.forcepow2texture = options().gl_force_pow2_texture();
+ video_config.allowtexturerect = !(options().gl_no_texture_rect());
+ video_config.vbo = options().gl_vbo();
+ video_config.pbo = options().gl_pbo();
+ video_config.glsl = options().gl_glsl();
+ if ( video_config.glsl )
+ {
+ int i;
- video_config.glsl_filter = options().glsl_filter();
+ video_config.glsl_filter = options().glsl_filter();
- video_config.glsl_shader_mamebm_num=0;
+ video_config.glsl_shader_mamebm_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- stemp = options().shader_mame(i);
- if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ for(i=0; i<GLSL_SHADER_MAX; i++)
{
- video_config.glsl_shader_mamebm[i] = (char *) malloc(strlen(stemp)+1);
- strcpy(video_config.glsl_shader_mamebm[i], stemp);
- video_config.glsl_shader_mamebm_num++;
- } else {
- video_config.glsl_shader_mamebm[i] = NULL;
+ stemp = options().shader_mame(i);
+ if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ {
+ video_config.glsl_shader_mamebm[i] = (char *) malloc(strlen(stemp)+1);
+ strcpy(video_config.glsl_shader_mamebm[i], stemp);
+ video_config.glsl_shader_mamebm_num++;
+ } else {
+ video_config.glsl_shader_mamebm[i] = NULL;
+ }
}
- }
- video_config.glsl_shader_scrn_num=0;
+ video_config.glsl_shader_scrn_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- stemp = options().shader_screen(i);
- if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ for(i=0; i<GLSL_SHADER_MAX; i++)
+ {
+ stemp = options().shader_screen(i);
+ if (stemp && strcmp(stemp, OSDOPTVAL_NONE) != 0 && strlen(stemp)>0)
+ {
+ video_config.glsl_shader_scrn[i] = (char *) malloc(strlen(stemp)+1);
+ strcpy(video_config.glsl_shader_scrn[i], stemp);
+ video_config.glsl_shader_scrn_num++;
+ } else {
+ video_config.glsl_shader_scrn[i] = NULL;
+ }
+ }
+ } else {
+ int i;
+ video_config.glsl_filter = 0;
+ video_config.glsl_shader_mamebm_num=0;
+ for(i=0; i<GLSL_SHADER_MAX; i++)
+ {
+ video_config.glsl_shader_mamebm[i] = NULL;
+ }
+ video_config.glsl_shader_scrn_num=0;
+ for(i=0; i<GLSL_SHADER_MAX; i++)
{
- video_config.glsl_shader_scrn[i] = (char *) malloc(strlen(stemp)+1);
- strcpy(video_config.glsl_shader_scrn[i], stemp);
- video_config.glsl_shader_scrn_num++;
- } else {
video_config.glsl_shader_scrn[i] = NULL;
}
}
- } else {
- int i;
- video_config.glsl_filter = 0;
- video_config.glsl_shader_mamebm_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- video_config.glsl_shader_mamebm[i] = NULL;
- }
- video_config.glsl_shader_scrn_num=0;
- for(i=0; i<GLSL_SHADER_MAX; i++)
- {
- video_config.glsl_shader_scrn[i] = NULL;
- }
- }
+ #endif /* USE_OPENGL */
}
diff --git a/src/osd/windows/video.h b/src/osd/windows/video.h
index 9cc833f67e2..4b6df303f1f 100644
--- a/src/osd/windows/video.h
+++ b/src/osd/windows/video.h
@@ -23,7 +23,9 @@ enum {
VIDEO_MODE_GDI,
VIDEO_MODE_DDRAW,
VIDEO_MODE_BGFX,
+#if (USE_OPENGL)
VIDEO_MODE_OPENGL,
+#endif
VIDEO_MODE_D3D
};
diff --git a/src/osd/windows/window.cpp b/src/osd/windows/window.cpp
index 8a177f53963..b73afbc6445 100644
--- a/src/osd/windows/window.cpp
+++ b/src/osd/windows/window.cpp
@@ -39,7 +39,9 @@ extern int drawgdi_init(running_machine &machine, osd_draw_callbacks *callbacks)
extern int drawdd_init(running_machine &machine, osd_draw_callbacks *callbacks);
extern int drawd3d_init(running_machine &machine, osd_draw_callbacks *callbacks);
extern int drawbgfx_init(running_machine &machine, osd_draw_callbacks *callbacks);
+#if (USE_OPENGL)
extern int drawogl_init(running_machine &machine, osd_draw_callbacks *callbacks);
+#endif
//============================================================
// PARAMETERS
@@ -228,8 +230,10 @@ bool windows_osd_interface::window_init()
drawbgfx_init(machine(), &draw);
if (video_config.mode == VIDEO_MODE_NONE)
drawnone_init(machine(), &draw);
+#if (USE_OPENGL)
if (video_config.mode == VIDEO_MODE_OPENGL)
drawogl_init(machine(), &draw);
+#endif
// set up the window list
last_window_ptr = &win_window_list;