Commit Graph

692 Commits

Author SHA1 Message Date
Themaister 7aa8b40759 Fixup C89 for loops. 2013-10-22 21:37:56 +02:00
twinaphex d2c87e3039 Convert most C99-style for loop initial declarations to C89-compliant
ones
2013-10-22 15:08:17 +02:00
Themaister 76c92bb0b4 Rework overlay driver interface.
Takes multiple images, each with individual positions, textures, etc.
2013-10-15 16:06:59 +02:00
twinaphex e63639388d (gl.c) Change define to !define(RARCH_CONSOLE) 2013-09-28 21:57:27 +02:00
twinaphex 4f54fd28a0 (PS3) Forcibly disable float FBO textures for now - was creating
all sorts of crashes
2013-09-27 23:04:19 +02:00
Themaister 3e7f101137 Make sure we're reading from backbuffer. 2013-09-12 22:40:11 +02:00
Themaister 178dc692c7 Do proper rounding in set_viewport.
Avoids edge cases where viewport sizes are miscalculated with -1 pixel
due to rounding errors.
2013-09-12 22:23:56 +02:00
Themaister 46c214f964 Small cleanup. 2013-09-07 15:23:09 +02:00
Themaister 870ef37258 Fix libretro GL state bug on frame dupe.
Need to force backbuffer and viewport on duped frames.
2013-09-07 15:04:40 +02:00
Themaister 98c9da9dda Set swap interval correctly in gl_init(). 2013-09-02 09:20:51 +02:00
Themaister b2bf3c12de Add swap_interval support.
Again, mostly useful for 120Hz monitors, and/or playing content which is
a fraction of monitor refresh rate.
2013-09-01 13:20:10 +02:00
Themaister 62c34c7871 Add black_frame_insertion support for 120 Hz monitors. 2013-08-30 09:35:13 +02:00
meancoot a4dfd35ab7 (Apple) Improvements:
Add core gl context support on OSX
	Add support for multiple game pads on OSX
 	Remove block on analog input for Player 2-4's game pads
2013-08-16 13:25:35 -04:00
Themaister 8ebd81edbf Log GL version as well. 2013-08-16 10:18:58 +02:00
Themaister 551fd27204 Add support for wrapping modes.
Not terribly useful atm due to POT, but at least it's there.
Has some use mostly with LUTs ... NPOT + REPEAT requires extension on
GLES2 at least.
2013-08-16 00:30:54 +02:00
Themaister 7236e51af0 Clear out GL error on driver init for robustness.
In case we used cached GL context, we'd error out
if a single GL error has been generated.
2013-08-14 14:58:12 +02:00
Themaister 3b1e65ba08 Add GL_DEBUG ifdef which forces full GL debugging. 2013-08-14 14:13:28 +02:00
Themaister 1389a1e37c Fix compile when GLSL isn't compiled in. 2013-08-11 15:25:04 +02:00
Themaister 7d942adaa3 Should fix build on PS3. 2013-08-11 15:06:42 +02:00
Themaister c19bdc7c2c Kill some stale code. 2013-08-11 01:24:48 +02:00
Themaister 2b28050c15 Build fixups. 2013-08-11 01:16:08 +02:00
Themaister 70de036440 Revert "Add GL sync support to GLES2."
This reverts commit c1bbb6bf89.
2013-08-11 01:09:10 +02:00
Themaister 47c4428d8e Add GL sync support to GLES2. 2013-08-11 01:09:10 +02:00
Themaister 27399deed9 Log vendor/renderer in GL. 2013-08-11 00:57:24 +02:00
Themaister 26d74be8b8 Disable blending per frame with HW render. 2013-08-11 00:56:53 +02:00
Themaister 6b4924c844 Be more conservative about texture memory usage. 2013-08-11 00:56:53 +02:00
Themaister f8eb0c5a62 Query extensions more explicitly. 2013-08-11 00:55:05 +02:00
Themaister 318b26cc0d Fix Android build. 2013-08-11 00:55:05 +02:00
Themaister d64c24248d Use glsym wrapper in libretro-test-gl. 2013-08-11 00:55:05 +02:00
Themaister 2e397b1d6b Win32 fixups. 2013-08-11 00:55:05 +02:00
Themaister e44249b73f Use glsym symbol loader instead of ugly poking. 2013-08-11 00:54:27 +02:00
Themaister 4e5c6b0f9a Fix RGUI when using bottom-left. 2013-08-11 00:53:46 +02:00
Themaister e5abd138ea More fixes to core context. 2013-08-11 00:53:46 +02:00
Themaister 6df083fc0f Add support for bottom-left origin in libretro GL. 2013-08-11 00:53:46 +02:00
Themaister b090f5ab36 Implement WGL core context. 2013-08-11 00:51:05 +02:00
Themaister e28f5d7cc1 Fix incompatibilities with GL core. 2013-08-11 00:50:38 +02:00
Themaister b9fce188ea Initial work on core GL context support. 2013-08-11 00:50:04 +02:00
twinaphex 63aaa7b2b0 (GL) Log vendor/renderer 2013-07-13 01:47:11 +02:00
twinaphex df6dfb4970 (OSX/iOS) Start renaming ios_ namespace -functions we're going to implement for
OSX as well
2013-07-05 04:10:05 +02:00
twinaphex 53df912321 (PS3) Move PS3-specific FPS printing code to ps3_ctx.c 2013-06-14 17:21:44 +02:00
twinaphex 559c4a7964 (RARCH_CONSOLE) Add refresh rate FPS statistics 2013-06-08 01:45:25 +02:00
Themaister 321ffcbca6 Calculate 1:1 PAR from right dimensions.
Frame cache can be stale or have awkward dimensions which
don't really reflect 1:1 PAR semantics.
2013-06-05 21:29:52 +02:00
Themaister 79275b28ff Fallback when initial shader init fails. 2013-06-05 10:44:27 +02:00
Themaister 43a6346d26 Adds video_hard_sync_frames.
Allows to control the maximum amount of frames that can be queued on
GPU.
2013-05-26 13:43:24 +02:00
twinaphex 20fdda8ca9 (RMenu) Move rewind settings to Settings submenu 2013-05-26 00:32:39 +02:00
Themaister 503ce7895c Reset BlendFunc with HW render. 2013-05-22 21:41:10 +02:00
twinaphex 46f29b1178 New define RARCH_MOBILE 2013-05-22 16:02:21 +02:00
Themaister b4b83cdf41 Use VBOs in GLSL.
Future proof a bit as future GL versions
require use of VBOs. Also avoids spamming client-side
data to GL all the time.

VAOs are not used, but that is only relevant if we actually
create a GL3+ context.
2013-05-21 10:44:25 +02:00
Themaister 12288e9b8c Avoid potential performance regressions.
PSGL uses GL_ARGB_SCE, and not GL_RGBA for one ...
2013-05-19 11:25:56 +02:00
Themaister f61cc333e9 Be more explicit about FBO formats.
GLES doesn't support 32-bit FBOs.
They seem to only be exposed via OES_rgb8_rgba8 and ARM_rgba8
extensions.
2013-05-18 21:53:26 +02:00
Themaister c1bd2d25c6 Fix desktop GL build. 2013-05-18 21:23:59 +02:00
Themaister 9406b0a771 More explicit logging of FBO errors. 2013-05-18 16:51:10 +01:00
Themaister e5ba936355 Disallow EGL images when using HW render. 2013-05-18 14:51:36 +01:00
Themaister ef257a6e8e Always use ios_bind_game_view_fbo().
Should hopefully fix libretro-test-gl and co.
2013-05-13 19:33:47 +02:00
Themaister 179b374c39 Add JNI target to libretro-test-gl.
Fixup GLES build.
2013-05-12 03:40:07 +02:00
twinaphex 71c699b5fc (Android/QNX) get_proc_address was not bound in context driver 2013-05-12 01:15:44 +02:00
Themaister 75c5a04e49 Fix GLES build.
GLES doesn't support glReadBuffer() ...
2013-05-11 16:04:46 +02:00
Themaister 74c8afc492 Fix GPU screenshots in GL.
Had to make sure to use GL_FRONT buffer.
2013-05-11 15:50:19 +02:00
Themaister f5d4008018 Check g_settings.video.hard_sync per frame.
Don't use hard_sync default in RGUI.
2013-05-04 22:49:06 +02:00
Themaister 10278786ba Flush before ClientWait. 2013-05-04 00:23:32 +02:00
Themaister 741ed2cc03 Add experimental video_hard_sync. 2013-05-03 14:04:29 +02:00
twinaphex 34619412bc (RARCH_CONSOLE) Get rid of video_stop_func 2013-04-24 16:08:18 +02:00
Themaister 068beedf3c Verify that RGUI texture is non-zero.
If we're converting, just use ARGB8888 in d3d9.
2013-04-21 12:07:57 +02:00
Themaister 6dd7ea935e Add GL_SHADER_STOCK_BLEND.
Replace stock shader with a special shader which does not apply color.
This is a necessary on Android.
2013-04-20 15:46:50 +02:00
Themaister be01a0ea59 Refactor aspect ratio handling.
Rework aspect ratio handling in RGUI.
Custom viewports work on PC. Ensure that aspect_ratio_idx persist
through reentrancy. Change ASPECT_RATIO_AUTO to ASPECT_RATIO_SQUARE to
better signal that it's the square pixel option.

Add ASPECT_RATIO_CONFIG as an option to use config file defined aspect
ratio.
2013-04-20 10:56:04 +02:00
Themaister d2ea83729e Fix uniform integer_scale bug. 2013-04-18 08:57:38 +02:00
twinaphex 639ca3bb97 (GL PS3) Take out glClear at start of gl_frame 2013-04-14 15:02:22 +02:00
twinaphex a6f3210593 (GL) Drop glBlendFunc GL_ONE function call - not needed for RMenu at least 2013-04-14 13:18:09 +02:00
Themaister 7a8628ff41 Don't ifdef update_tex_filter_frame for FBO. 2013-04-14 01:56:13 +02:00
Themaister ca5ff43b6f Add default filtering option to RGUI. 2013-04-14 01:45:33 +02:00
Themaister e1c1e4d414 Call gl_update_tex_filter in set_shader. 2013-04-14 01:31:32 +02:00
Themaister 67a69d0339 Don't delete RGUI texture on reinit. 2013-04-14 00:26:22 +02:00
twinaphex a2438f7b80 (RMenu) Fix - don't want to glDeletTexture RGUI texture when
game texture has to be reinitialized
2013-04-14 00:11:57 +02:00
Themaister c17714ffbb Add full screen mode to set_texture_enable. 2013-04-13 16:49:25 +02:00
Themaister e389220df8 Refactor frame_counter.
Graphics drivers get the task of updating this.
If threaded driver is used, main thread cannot update the counter
due to race conditions.
2013-04-13 14:28:12 +02:00
twinaphex 33798edb27 Drop most of the unnecessary GL shader wrapper functions/macros -
these were necessary before we made the shader backends
2013-04-13 09:01:25 +02:00
twinaphex 0f60833cac (RMenu) Do video rendering in RMenu after input - same as RGUI - will also
avoid having to 'skip' video swap when doing the render cached
frame call
2013-04-11 15:00:58 +02:00
twinaphex 8c777110f7 (RMenu) Run glClear or equivalent function at start of driver_frame function
so that we can use rarch_render_cached_frame for menu purposes at
all times (instead of doing explicit clearing in our menu loops
beforehand for low-RAM modes where no menu texture is being drawn
but we don't want ghosting in the picture)
2013-04-11 13:42:02 +02:00
twinaphex 1171b7576a Get rid of set_blend callback - the rgui draw texture function is
now in charge of making sure texture is properly blended - note
to OV2/maister - test if this breaks D3D9 PC driver and if so
fix accordingly
2013-04-11 13:13:37 +02:00
Themaister 49e4020437 Move forced IOS viewport logic further up.
If using multipass, the forced viewport update
will ruin the viewport.
2013-04-10 20:43:32 +02:00
Themaister 7de7c3d743 Fix RGUI in gl.c.
RGUI sets MODE_MENU_DRAW causing
context_swap_func to be skipped entirely.
Tried removing MODE_MENU_DRAW in rgui, but gx_video still seems to rely
on MODE_MENU_DRAW being set, so I didn't fix it in RGUI. Someone needs
to fix gx_video to not depend on lifecycle.
2013-04-10 20:15:51 +02:00
twinaphex d313e9b8f9 (PS3 RMenu) RMenu now renders background texture the same way
as RGUI
2013-04-10 06:22:37 +02:00
twinaphex 3a131cf5b8 (PS3) Compile in HAVE_OVERLAY 2013-04-10 04:39:27 +02:00
meancoot c33c634dc4 (iOS) Fix aspect ratio of duped frames 2013-04-07 19:08:23 -04:00
twinaphex db0ff2a212 (RARCH_CONSOLE) Build fixes 2013-04-07 18:03:25 +02:00
Themaister 0971cad635 Fix crash when using rotation with threaded driver. 2013-04-07 15:51:00 +02:00
Themaister 4cdfcf30d5 Refactor set_rgui_texture.
More generic and avoids poking directly into RGUI state.
2013-04-07 14:07:45 +02:00
Themaister f3ca37cb2b Always use NULL shader is shader_enable is false.
RARCH_CONSOLE sets true as default. Update the config
if shader_enable is false.
2013-04-07 13:11:27 +02:00
Themaister f88ea04c28 Remove fixed shader index in set_shader. 2013-04-07 13:00:21 +02:00
Themaister f525d83711 Fix derp. Removed too much. 2013-04-07 10:27:38 +02:00
twinaphex d4e8a3c682 (Android) Build fix 2013-04-07 04:17:44 +02:00
Themaister cde994f80f Remove obsolete #ifdefs. 2013-04-07 02:39:27 +02:00
Themaister 444b94e089 Should fix PS3 shader loading. 2013-04-07 02:37:49 +02:00
Themaister ec5c12f3f9 Add logging to shader_init. 2013-04-07 02:18:59 +02:00
Themaister 59fd1fe22a Fix typo. 2013-04-07 02:07:01 +02:00
Themaister 4a8b3599bc Refactor out cg_shader_path, xml_shader_path.
Make shader paths uniform in shader_path.
2013-04-07 01:46:06 +02:00
twinaphex 909122122d Take out obsolete console-style overscan options - just use
Resize Mode instead
2013-04-07 01:23:10 +02:00
twinaphex 142c6335c9 (Cg/PS3) Embed menu shader 2013-04-06 21:05:30 +02:00
Themaister 7a20cfa79c Don't crash if Cg is init with NULL. 2013-04-06 20:50:22 +02:00
twinaphex fde1ea7193 (PS3 PSGL) No longer ifndef float FBOs - also no longer have
separate copies of gl_copy_frame for PSGL etc.
2013-04-06 18:40:50 +02:00
twinaphex 1c5144f9bd (RMenu) Move RMenu logic out of graphics driver context files 2013-04-06 17:44:07 +02:00
twinaphex 9a4ddfd2e0 Forgot a conditional check in shader_cg.c before doing freeing of
menu_cg_program - some other cleanups to do with setting stock
shaders in Cg
2013-04-06 16:29:00 +02:00
Themaister e649db253c Reintroduce CGP refactor.
Fix several issues that caused crashes.
2013-04-06 12:00:10 +02:00
Themaister c3ac3028b5 Reuse gl_disable_client_arrays. 2013-04-06 11:26:06 +02:00
twinaphex a2d9129782 Kill off set_fbo_state and get_fbo_state function pointers 2013-04-06 06:21:11 +02:00
twinaphex eb0feac9e3 (PS3/All) Purge fixed-style shaders again - this time avoiding
breakage on PS3. Maister -you will need to redo shader_parse.c
again though - and this time I need to test it on PS3 to avoid
a regression that happened two pages prior again
2013-04-06 05:46:09 +02:00
twinaphex 0340f2043c Revert "Major refactor to CGP parsing."
This reverts commit 211e17250c.
2013-04-06 04:37:17 +02:00
twinaphex 58b6de008b Revert "Purge fixed-style second_pass_shader."
This reverts commit 160bbf0218.
2013-04-06 03:54:38 +02:00
twinaphex 83ffe437b3 Revert "Fix Win32 build."
This reverts commit cf655355d7.
2013-04-06 03:54:18 +02:00
Themaister cf655355d7 Fix Win32 build. 2013-04-06 00:06:51 +02:00
Themaister 160bbf0218 Purge fixed-style second_pass_shader. 2013-04-06 00:03:28 +02:00
Themaister 262b867ae0 Update MSVC2010 build.
Add RGUI, add folder query for Windows, fix GL HW render bug.
2013-04-04 20:25:41 +02:00
Themaister bae11ddc24 Fix CXX_BUILD. 2013-04-04 14:36:24 +02:00
Themaister d550a263ae Merge branch 'cgp-refactor' of github.com:Themaister/RetroArch into cgp-refactor 2013-04-03 21:09:03 +02:00
Themaister 52edca883e Drop stencil for now in HW render context.
Doesn't seem to work reliably anyways.
2013-04-02 23:29:26 +02:00
Themaister 3b392dfcd6 Rename bsnes_shader_path to xml_shader_path. 2013-04-02 22:40:26 +02:00
Themaister 211e17250c Major refactor to CGP parsing.
Adds saving functionality for CGPs.
2013-04-01 15:34:02 +02:00
Themaister 73df40fe8e Use better scope on RGL ifdef. 2013-03-30 15:40:53 +01:00
twinaphex 454c329746 (PS3) If HAVE_RGL is defined, GL render subsystem will not be
built in
2013-03-30 15:39:00 +01:00
Hans-Kristian Arntzen ebd7dcf721 Merge pull request #169 from Themaister/gl-render
HW GL render for libretro.
2013-03-30 06:33:53 -07:00
Themaister 292bc36b43 Basic mouse grabbing for X11. 2013-03-29 18:55:54 +01:00
Themaister 063a2e091c Be more explicit about GLES2 or GL context. 2013-03-29 15:26:47 +01:00
Themaister 0604f8e7ee Drop ALPHA_TEST. It is legacy GL. 2013-03-29 14:12:51 +01:00
Themaister 403a3faea2 Clean out some more GL state. 2013-03-29 14:11:53 +01:00
Themaister 5d81093481 Merge branch 'master' into gl-render 2013-03-29 14:10:28 +01:00
Themaister 5e755671da Add show_mouse() context callback. 2013-03-29 13:46:11 +01:00
Themaister 067e00b3dd Remove post_render context callback.
Was supposed to be used for overlay, but is useless now.
2013-03-29 13:26:07 +01:00
Themaister d844dfce00 Merge branch 'master' into gl-render 2013-03-29 02:53:27 +01:00
Themaister 50af927de6 Add depth/stencil buffers to HW GL. 2013-03-29 02:50:42 +01:00
Themaister f4e9547e68 Fix Win32 HW render. 2013-03-29 02:12:08 +01:00
meancoot a8eaeece3d (OSX) Build fix for gfx/gl.c 2013-03-28 20:23:30 -04:00
Themaister 8783cbb010 Handle GL state more carefully. 2013-03-28 12:13:41 +01:00
Themaister 77861f5a59 Render something in motion. 2013-03-28 01:19:48 +01:00
Themaister 1cececac18 Add get_proc_address.
Render something "real" in GL.
2013-03-28 01:11:32 +01:00
Themaister f7cab36188 Fix viewport when rendering to FBO. 2013-03-27 16:22:56 +01:00
Themaister af40f3e9b8 Add initial GL direct rendering test. 2013-03-27 16:15:15 +01:00
Themaister 0db8fee69d Add floating point FBO support to GLES. 2013-03-26 15:11:44 +01:00
Themaister 773c511179 Add floating point FBO support. 2013-03-25 16:42:41 +01:00
twinaphex 82329cf097 (Blackberry) Starts up in RGUI mode now - should (hopefully) allow
for dynamic changing of libretro core and selection of ROM instead
of hardcoded paths.
2013-03-24 01:00:00 +01:00
Themaister 51b5a2df5c Refactor aspect_ratio member.
Mutate in g_extern.system.aspect_ratio to avoid
getting wrong aspect ratio on reentrancy.
2013-03-17 22:05:15 +01:00
twinaphex 3bc487be87 Merge branch 'ios' of git://github.com/meancoot/RetroArch 2013-03-15 20:05:15 +01:00
twinaphex af02acbdd4 (RGUI/GL) Create gl_init_rgui_texture (avoids duplication of code) 2013-03-12 01:36:42 +01:00
twinaphex c638728917 (GL) Don't needlessly compile in FBO functions if HAVE_FBO isn't
defined
2013-03-12 00:00:42 +01:00
twinaphex b4108eb343 Add set_osd_msg to video_poke 2013-03-11 21:42:02 +01:00
twinaphex 63883a1131 Combine render_msg and render_msg_place with params argument 2013-03-11 20:05:05 +01:00
twinaphex d9c3a99d0b Update some credits 2013-03-11 07:13:11 +01:00
twinaphex e7287d19e5 Add HAVE_FBO ifdefs for gl and gx_video as well 2013-03-10 20:25:47 +01:00
Themaister 0e75731685 Add get_fbo_state(). 2013-03-10 20:13:04 +01:00
Themaister 0b67cd7e84 Add apply_state_changes. 2013-03-10 19:49:26 +01:00
Themaister 63d946c69f Add set_rgui_texture interface to video_poke. 2013-03-10 19:14:28 +01:00