- The OpenGL blitter now uses legacy gl*Pointer functions instead of glVertexAttribPointer() to improve compatibility with older drivers.
- The OpenGL blitter now uses ARB versions of VBO functions to improve compatibility with older drivers.
- Do some code cleanup.
- Remove the requirement for the OS X v10.5 SDK when building using the "OS X App; v10.5 Leopard Release Build" scheme in the Xcode 4 project. The scheme now uses the latest OS X SDK available. This is being done for forward compatibility purposes.
- Fix compiling when building using the OS X v10.5 and earlier SDKs in the Xcode 3 and Legacy projects.
- Fix compiling when building for all PowerPC build targets.
- Add Rigorous 3D Rendering Timing setting to Emulation Settings.
- Add option for 8 Threads to 3D Rendering Settings.
- Do some code cleanup to the display code.
- Move OpenGL renderer code from the UI code to the emulation core interface code.
- Clean up the OpenGL renderer init code, and lazy load the context init.
- Fix bug where the wrong display would show when changing display modes after changing video filters.
- Do some other random bug fixes.
- Major rewrite of the OpenGL rendering code! Most important changes listed below.
- Encapsulate 3D rendering code in C++ classes.
- Add support for 3.2 Core Profile contexts, while preserving backwards compatibility with legacy contexts.
- Initialize the renderer to choose the best OpenGL entry points available from the driver, automatically falling back to legacy entry points as needed.
- Remove multithreading code. New and previous optimizations have obsoleted the need for it, so remove it to reduce code complexity.
- Obsolete shaders.h and add the shader code directly into the .cpp files. Ports can safely remove the shaders.h file from their project/make files.
- Lots of refactoring and code cleanup (important points listed below).
- Clean up #include stuff.
- Make dynamic extension linking a bit nicer.
- Remove ARB and EXT tokens and replace with 3.2 Core Profile tokens. Add backwards compatibility for pre-3.0 OpenGL headers.
- Check for GL_ARB_texture_mirrored_repeat, GL_EXT_blend_func_separate, and GL_EXT_blend_equation_separate. Older GPUs that don't support these extensions should no longer malfunction.
- Add the (Get/Set)FilterParameter family of methods for video filters that need parameters.
- Make VideoFilter::RunFilter() and the destructor a little bit more thread-safe.
- Do some minor code cleanup.
- New feature: Add support for the OpenGL renderer's multisample antialiasing (MSAA) feature.
- Update UI tooltips for the 3D renderers to reflect the current state of the code.
- New feature: Support multisample antialiasing (MSAA). This can be enabled through the CommonSettings.GFX3D_Renderer_Multisample setting (disabled by default).
- Do some cleanup of the init code.
- Remove NDS_3D_GetLineData(), as it wasn't appropriately named or used for its intended purpose.
- Add NDS_3D_RenderFinish(), which is what should have been used in the first place. (Purpose: Blocks the thread until 3D rendering is finished.)
- Optimize gpu3DNull so that it doesn't have to clear the 3D layer every frame.
task.h:
- Fix multiple #include compiling bug.
SoftRasterizer:
- Improve the performance of rendering in multithreaded mode.
- Improve the stability of reset and shutdown in multithreaded mode.
- Do some minor code cleanup.
OpenGL Renderer:
- Improve the stability of reset and shutdown.
- Do some minor code cleanup.
- Make PBO feature support check a little less strict.
- Do some small optimizations to the DS framebuffer color conversion and ClearImage buffers.
- Do a big round of code cleanup.
- Make the video filters code more cross-platform friendly by adding #includes for Linux.
- Do more parameter checks in RunFilterCustom() and also add more helpful comments.
- Small optimization to texture handling.
- Rewrite console info strings for better reading, and also prefix all lines with "OpenGL:".
- Report basic GPU info in the console on init.
- Check for a minimum OpenGL header version of v2.0 and a minimum OpenGL GPU version of v1.2. (Note that these requirements were always implied by the code, but now we can explicitly check for them.)
- Do even more code cleanup.
- Fix compiling on non-Windows platforms. (Regression from r4469)
- Fix compiling for 32-bit. (Regression from r4469)
asmjit Library:
- Do temporary fix for compiling on OS X for SDKs earlier than v10.7.
Cocoa Port:
- Update Xcode project files to include the new asmjit library from r4469.
- Limit OS X SDK version to v10.6 in the Xcode 3 project.