bunnei
20d169e4a1
VideoCore: Fixes rendering issues on Qt and corrects framebuffer output size.
2014-08-26 17:34:52 -04:00
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.
2014-08-25 20:56:59 -07:00
Tony Wasserka
a79644c9ba
Pica/Rasterizer: Clarify a TODO.
2014-08-25 22:03:19 +02:00
Tony Wasserka
697b50c3ff
Pica/VertexShader: Fix a bug in the call stack handling.
2014-08-25 22:03:19 +02:00
Tony Wasserka
b5b3aeb576
Math: Warning fixes.
2014-08-25 22:03:19 +02:00
Tony Wasserka
2f1c129f64
Pica: Consolidate the primitive assembly code in PrimitiveAssembly and GeometryDumper.
2014-08-25 22:03:19 +02:00
Tony Wasserka
9679d231df
Pica/Rasterizer: Add texturing support.
2014-08-25 22:03:18 +02:00
Tony Wasserka
34fa0b6d9c
Pica/DebugUtils: Add convenient tev setup printer.
2014-08-25 22:03:18 +02:00
Tony Wasserka
27cab6477e
Pica/Rasterizer: Add initial implementation of texture combiners.
2014-08-25 22:03:18 +02:00
Tony Wasserka
c4691b784b
Pica: Add support for dumping textures.
2014-08-25 22:03:18 +02:00
Tony Wasserka
162d641a30
Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly.
...
- Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work).
- The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors.
- Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>).
2014-08-25 22:03:18 +02:00
Tony Wasserka
62c36a4ef0
Pica/VertexShader: Fix a bug in the bitfield definitions and add the "negate" field for swizzlers.
2014-08-25 22:03:18 +02:00
Tony Wasserka
26ade98411
Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated.
2014-08-25 22:03:18 +02:00
Tony Wasserka
0465adf206
Pica/CommandProcessor: Implement parameter masking.
2014-08-25 22:03:18 +02:00
Tony Wasserka
f37e39deb9
Pica: Add debug utilities for dumping shaders.
2014-08-25 22:03:18 +02:00
Tony Wasserka
6ea003c7b5
Pica: Add debug utility functions for dumping geometry data.
2014-08-25 22:03:18 +02:00
Sacha
a3a70e56ac
Fix the threading for GL Context in Qt5.
...
Connect the emu_thread start/finish to a moveContext slot.
2014-08-25 00:47:00 +10:00
bunnei
388356f629
Merge pull request #42 from archshift/glexp
...
Use glewExperimental to fix crashes with citra-glfw
2014-08-13 13:10:45 -04:00
archshift
662a1993e6
float24: Remove private default constructor
...
Fixes building with clang.
2014-08-13 02:54:16 -07:00
archshift
d71af1bd20
Use glewExperimental on Linux in order to fix GLFW-mode
2014-08-12 13:42:04 -07:00
Tony Wasserka
94d742fe17
Pica: Add basic rasterizer.
2014-08-12 13:50:07 +02:00
Tony Wasserka
94aa9da562
Pica: Add triangle clipper.
2014-08-12 13:49:33 +02:00
Tony Wasserka
9a76a2d061
Pica: Add primitive assembly stage.
2014-08-12 13:48:56 +02:00
Tony Wasserka
c526512619
Pica: Add vertex shader implementation.
2014-08-12 13:48:10 +02:00
Tony Wasserka
d443f0a921
Pica: Implement vertex loading.
2014-08-12 13:47:31 +02:00
Tony Wasserka
1a43f69477
Pica: Add register definition for vertex loading and rendering.
2014-08-12 13:47:31 +02:00
Tony Wasserka
76a586de49
Pica: Add command processor.
2014-08-12 13:47:30 +02:00
Tony Wasserka
98ad16a45b
Pica: Add float24 structure.
...
24-bit floating points are used internally for calculations on the GPU, however the current code will still emulate that with 32-bit floating points.
In the future we might want to accurately perform the calculations with correct bitness in the future, but for now we just wrap the calculations around this class.
2014-08-12 13:46:24 +02:00
Tony Wasserka
8528c810cf
Video core: Add utility class for vector operations.
...
I wrote most of this for ppsspp, so I hold full copyright over it.
In addition to the original release in ppsspp, this provides functionality to easily extend e.g. two-dimensional vectors to three-dimensional vectors.
2014-08-12 13:46:20 +02:00
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.
2014-08-12 13:32:56 +02:00
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.
2014-08-12 02:17:21 +02:00
bunnei
4e9f305ed2
GSP: Removed dumb GX prefixes to functions/structs in GSP namespace.
...
- Various other cleanups.
2014-08-05 23:58:00 -04:00
Tony Wasserka
9fd2537e93
Use uniform formatting when printing hexadecimal numbers.
2014-07-23 00:44:31 +02:00
Tony Wasserka
9b0d0c81a0
GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32.
...
Anonymous structs are not standard C++, hence don't use them.
2014-07-23 00:44:31 +02:00
Tony Wasserka
246cb75584
RegisterSet: Simplify code by using structs for register definition instead of unions.
2014-07-23 00:33:08 +02:00
Tony Wasserka
75775e9ef4
GPU: Make use of RegisterSet.
2014-07-23 00:33:08 +02:00
Tony Wasserka
c6fdeb7b23
Renderer: Fix component order in bottom framebuffer.
2014-07-23 00:33:08 +02:00
Tony Wasserka
cb6f97b2eb
Renderer: Respect the active_fb GPU register.
2014-07-23 00:33:08 +02:00
Tony Wasserka
9b96407e8e
Renderer: Add a few TODOs.
2014-07-23 00:33:08 +02:00
Tony Wasserka
a4d89edd9b
GPU debugger: Don't keep track of debugging data if no debugger views are active.
2014-07-22 22:27:27 +02:00
Tony Wasserka
c34ba38001
GPU debugger: Const correctness and build fix.
2014-06-12 06:10:56 -04:00
archshift
ee4717aaae
Preprocessor: #if's out OSX-specific GL changes on other platforms
2014-06-12 06:10:55 -04:00
Tony Wasserka
4c2bff61e5
Pica: Use some template magic to define register structures efficiently.
2014-06-12 06:10:54 -04:00
Tony Wasserka
f82410e633
Further refine GPU command list debugging.
2014-06-12 06:10:53 -04:00
Tony Wasserka
b0051b2203
Refine command list debugging functionality and its qt interface.
2014-06-12 06:10:52 -04:00
Tony Wasserka
6893732348
citra-qt: Add command list view.
2014-06-12 06:10:52 -04:00
Tony Wasserka
5d62f5d92a
GPU debugger: Add functionality to inspect command lists.
2014-06-12 06:10:51 -04:00
Tony Wasserka
50b2b73be4
video core: added PICA definitions file.
2014-06-12 06:10:51 -04:00
Tony Wasserka
1dfa392824
Rename LCD to GPU.
2014-06-12 06:10:49 -04:00
Tony Wasserka
31666632ca
Add initial graphics debugger interface.
2014-06-12 06:10:48 -04:00
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
2014-05-19 17:57:35 -07:00
archshift
034e3aabc8
Improved clarity and whitespace
...
Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5.
2014-05-19 15:21:55 -07:00
archshift
403e4bf837
CMakeLists: rename HEADS, improved comments
...
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19 15:19:36 -07:00
archshift
71b8789803
Indent fixes
2014-05-19 13:51:59 -07:00
archshift
b8c8d0903e
Merge remote-tracking branch 'upstream/master' into issue-7-fix
2014-05-16 23:21:03 -07:00
Sethpaien
e1fcb2fdfb
Update FlipFramebuffer
...
Less calculations + fix
2014-05-08 18:05:30 +02:00
archshift
704075f04a
Fixed indents
2014-04-30 20:13:28 -07:00
archshift
948cfe6d37
Reverse debugging changes
2014-04-30 20:00:44 -07:00
archshift
fb47258af7
TGA dumps work, courtesy of @bunnei
2014-04-30 18:34:49 -07:00
archshift
c1b770cc0d
OpenGL 3+ on OSX with GLFW
2014-04-30 17:00:36 -07:00
archshift
5a9c2ce5ea
IT'S ALIVE!
2014-04-28 19:40:39 -07:00
archshift
48deb45624
Xcode complains that the class name is redundant.
2014-04-27 22:23:01 -07:00
archshift
ff48c8bed3
Rect to BasicRect
...
Somewhere along the line an OSX header had already taken the name Rect.
2014-04-27 22:21:46 -07:00
bunnei
a48c6b947d
removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class
2014-04-27 18:29:51 -04:00
bunnei
1142ccba03
fixed renderer to use correct framebuffer location
2014-04-27 12:42:01 -04:00
bunnei
7a080551ac
fixed GL context acquire (applies to Qt GUI only)
2014-04-21 22:00:32 -04:00
bunnei
70c2cce963
renamed hw_lcd module to just lcd
2014-04-17 23:48:23 -04:00
bunnei
9d5a561c1b
fixed framebuffer color order
2014-04-17 17:47:34 -04:00
bunnei
d4411acfd0
removed hard-coded framebuffer addresses from renderer_opengl.cpp
2014-04-16 21:30:10 -04:00
bunnei
5d95bb9843
cleaned up some logging messages
2014-04-10 22:45:40 -04:00
bunnei
9527fc74ad
fixed a bunch of errors in CMakeLists
2014-04-09 20:28:43 -07:00
bunnei
6b83509a7e
updated CMakeLists
2014-04-09 23:09:05 -04:00
bunnei
de0a034a84
fixed project includes to use new directory structure
2014-04-08 20:15:08 -04:00
bunnei
63e46abdb8
got rid of 'src' folders in each sub-project
2014-04-08 19:25:03 -04:00
bunnei
ef7cfa0207
fixed license header in video_core
2014-04-08 19:04:25 -04:00
bunnei
8c60294243
- removed lots of unused code from gekko
...
- updated code style/naming conventions
2014-04-08 18:59:02 -04:00
bunnei
8cf851f68a
added support for renderering the external framebuffers
2014-04-07 00:52:34 -04:00
bunnei
506e6049d3
added external framebuffer GL handles
2014-04-06 22:57:04 -04:00
bunnei
080f847550
added initial renderer code
2014-04-06 16:55:39 -04:00
bunnei
23506defe3
added video_core project to solution
2014-04-05 16:04:25 -04:00