Commit Graph

50 Commits (a45175ee0d2a5a0bb17811baa55501cad36a9e29)

Author SHA1 Message Date
Yuri Kunde Schlesner 5961a2852d GSP: Update framebuffer info on all interrupts
Hardware testing determined that the GSP processes shared memory
framebuffer update info even when no memory transfer or filling GX
commands are used. They are now updated on every interrupt, which isn't
confirmed correct but matches hardware behaviour more closely.

This also reverts the hack introduced in #404. It made a few games
behave better, but I believe it's incorrect and also breaks other games.
11 years ago
bunnei f7a3f45f1e GSP: Toggle active framebuffer each frame 11 years ago
bunnei 0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
11 years ago
purpasmart96 ebfd831ccb License change 11 years ago
Chin e795692614 Clean up some warnings 11 years ago
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 11 years ago
Rohit Nirmal 8a62423970 Change NULLs to nullptrs. 11 years ago
bunnei 63b1453dd8 Merge pull request #236 from rohit-n/sign-compare
Silence a few -Wsign-compare warnings.
11 years ago
Rohit Nirmal f9b53c3e94 Silence a few -Wsign-compare warnings. 11 years ago
vaguilar 95b33ee0a7 Fixed viewport error caused by rounding 11 years ago
Emmanuel Gil Peyrot 739bb58c3a Remove tabs in all files except in skyeye imports and in generated GL code 11 years ago
Tony Wasserka c5c6e095f0 OpenGL Renderer: Cleanup viewport extent calculation. 11 years ago
Tony Wasserka bd8f491e4c Fixup EmuWindow interface and implementations thereof. 11 years ago
Kevin Hartman 221a9b023d Viewport scaling and display density independence
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
11 years ago
Yuri Kunde Schlesner d72708c1f5 Add `override` keyword through the code.
This was automated using `clang-modernize`.
11 years ago
Yuri Kunde Schlesner 15c59f3974 Only check OpenGL shader log if size is >1.
This prevents a crash when the buffer size returned by the driver is 0,
in which case no space is allocated to store even the NULL byte and
glGetShaderInfoLog errors out.

Thanks to @Relys for the bug report.
11 years ago
Yuri Kunde Schlesner 11642fd3a2 Rework OpenGL renderer.
The OpenGL renderer has been revised, with the following changes:
 - Initialization and rendering have been refactored to reduce the number of
   redundant objects used.
 - Framebuffer rotation is now done directly, using texture mapping.
 - Vertex coordinates are now given in pixels, and the projection matrix
   isn't hardcoded anymore.
11 years ago
Yuri Kunde Schlesner 5f598a5e2c OpenGL renderer: Shuffle initialization code around and rename functions. 11 years ago
Yuri Kunde Schlesner 787a1b047c Remove virtual inheritance from RendererOpenGL
Also make destructor virtual so that instances are properly destructed.
11 years ago
bunnei 5481115e71 Merge pull request #97 from archshift/cleanup
Small, general code cleanup
11 years ago
archshift 8fe5f2e2fe Moved common_types::Rect from common to Common namespace 11 years ago
archshift 81baa477b5 renderer_opengl.cpp: improved alignment for readability 11 years ago
Yuri Kunde Schlesner 478289140d Replace GLEW with a glLoadGen loader.
This should fix the GL loading errors that occur in some drivers due to
the use of deprecated functions by GLEW. Side benefits are more accurate
auto-completion (deprecated function and symbols don't exist) and faster
pointer loading (less entrypoints to load). In addition it removes an
external library depency, simplifying the build system a bit and
eliminating one set of binary libraries for Windows.
11 years ago
Yuri Kunde Schlesner 9d172ab550 Downgrade GLSL version to 1.50 (compatible with GL 3.2) 11 years ago
bunnei 20d169e4a1 VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size. 11 years ago
Kevin Hartman cbfd6b6e52 Rewrite of OpenGL renderer, including OS X support
Screen contents are now displayed using textured quads. This can be updated to expose an FBO once an OpenGL backend for when Pica rendering is being worked on. That FBO's texture can then be applied to the quads.

Previously, FBO blitting was used in order to display screen contents, which did not work on OS X. The new textured quad approach is less of a compatibility risk.
11 years ago
Tony Wasserka 7b6a7d7dfb Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible.
This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
11 years ago
Tony Wasserka 9c781a6c76 Remove the fancy RegisterSet class introduced in 4c2bff61e.
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures.
Instead, we now use a more conventional approach which is a lot more clean to use.
11 years ago
Tony Wasserka 9fd2537e93 Use uniform formatting when printing hexadecimal numbers. 11 years ago
Tony Wasserka 246cb75584 RegisterSet: Simplify code by using structs for register definition instead of unions. 11 years ago
Tony Wasserka 75775e9ef4 GPU: Make use of RegisterSet. 11 years ago
Tony Wasserka c6fdeb7b23 Renderer: Fix component order in bottom framebuffer. 11 years ago
Tony Wasserka cb6f97b2eb Renderer: Respect the active_fb GPU register. 11 years ago
Tony Wasserka 9b96407e8e Renderer: Add a few TODOs. 11 years ago
Tony Wasserka 1dfa392824 Rename LCD to GPU. 12 years ago
archshift 5a8ed196e6 common_types: Changed BasicRect back to Rect, in the common namespace
Only Rect is in the namespace for now; the rest of common should be added in the future
12 years ago
archshift b8c8d0903e Merge remote-tracking branch 'upstream/master' into issue-7-fix 12 years ago
Sethpaien e1fcb2fdfb Update FlipFramebuffer
Less calculations + fix
12 years ago
archshift 948cfe6d37 Reverse debugging changes 12 years ago
archshift fb47258af7 TGA dumps work, courtesy of @bunnei 12 years ago
archshift 48deb45624 Xcode complains that the class name is redundant. 12 years ago
archshift ff48c8bed3 Rect to BasicRect
Somewhere along the line an OSX header had already taken the name Rect.
12 years ago
bunnei a48c6b947d removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class 12 years ago
bunnei 1142ccba03 fixed renderer to use correct framebuffer location 12 years ago
bunnei 7a080551ac fixed GL context acquire (applies to Qt GUI only) 12 years ago
bunnei 70c2cce963 renamed hw_lcd module to just lcd 12 years ago
bunnei 9d5a561c1b fixed framebuffer color order 12 years ago
bunnei d4411acfd0 removed hard-coded framebuffer addresses from renderer_opengl.cpp 12 years ago
bunnei de0a034a84 fixed project includes to use new directory structure 12 years ago
bunnei 63e46abdb8 got rid of 'src' folders in each sub-project 12 years ago