Commit Graph

758 Commits

Author SHA1 Message Date
d5f1f0d4a9 merge some common parts of Swap() into VideoCommon 2014-02-15 11:33:43 +01:00
3551259c7a use EFBRectangle for scissor rect
This one is backend independed. The backend should recalc such things on their own.
2014-02-15 11:33:43 +01:00
1f4219b5b4 move perfquery enable checks into videocommon (caller side) 2014-02-15 11:33:43 +01:00
5a660c27bc rename UpdateViewport to SetViewport like all others setters in RenderBase.h 2014-02-15 11:33:43 +01:00
e5318d2624 move shared parts from VertexManager::vFlush into VideoCommon 2014-02-15 11:33:43 +01:00
655d22512b Kill off some usages of the ArraySize macro.
This required the use of std::array in some cases.
2014-02-15 02:43:54 -05:00
404624bf0b Turn loops into range-based form
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
3dd31fe22b Merge pull request #11 from degasus/VertexLoaderCleanup
Vertex loader cleanup.
2014-01-31 06:13:26 -08:00
010a0d481a VideoCommon: remove Cache Displaylist
This option was known to break every second game and only boost a bit.
It also seems to be broken because of streaming into pinned memory and buffer storage buffers.

v2: also remove dlc_desc
2014-01-31 07:30:55 +01:00
a65162f1cd PortableVertexFormat: use AttributeFormat for posmtx attribute format 2014-01-31 07:19:34 +01:00
6c59b691b0 PortableVertexFormat: use AttributeFormat for texcoord attribute format 2014-01-31 07:19:34 +01:00
ef2d6e7d53 PortableVertexFormat: use AttributeFormat for color attribute format 2014-01-31 07:19:34 +01:00
b38ef39ab7 PortableVertexFormat: use AttributeFormat for normal attribute format 2014-01-31 07:19:34 +01:00
210f4f3e55 PortableVertexFormat: add a struct which hold all needed information for every vertex and use this for position
atm, position attribute is hardcoded both in VertexLoader and in backends.

v2: fix coding style + cleanup lookup table
2014-01-31 07:19:25 +01:00
02d1d8e6a0 NativeVertexFormat: swap unsigned / signed formats to match GX order 2014-01-30 11:12:10 +01:00
9b6c6fa9e4 BBox: Changed the rounding again, the old one fixed Paper Mario but had bugs in Mickey's Magical Mirror. This change fixes the glitches in both games.
Also fixed some compiler warnings.
2014-01-26 13:21:22 +00:00
1ff681a412 D3D: move streaming buffer fallback into D3D backend
Neith OGL nor VideoCommon doen't use it, so there is no need to have it in VideoCommon.
2014-01-23 15:27:18 +01:00
ebbf1d392b VideoCommon: merge trivial parts of VertexManager::Flush 2014-01-21 10:47:00 +01:00
6b01839525 VideoCommon: merge triangle+list+point index buffers
We are used to render them out of order as long as everything else matches, but rendering order does matter, so we have to flush on primitive switch. This commit implements this flush.
Also as we flush on primitive switch, we don't have to create three different index buffers. All indices are now stored in one buffer.

This will slow down games which switch often primitive types (eg ztp), but it should be more accurate.
2014-01-17 16:34:53 +01:00
5e5db9fbc6 VideoCommon: cleanup of "components" usage
This "u32 components" is a list of flags which attributes of the vertex loader are present.
We are used to append this variable to lots of vertex generation functions, but some of them don't need it at all.
2014-01-15 16:58:36 +01:00
eb310cbd1d VideoCommon: disable efb access + perf querys on cph thread
The usual way to handle this kind of request is to rise a flag which the gpu thread polls.
The gpu thread itself either generates the result or just write zeros if disabled.
After this, it rise another flag which says that this work is done.

So if disabled, we still have the cpu-gpu round trip time. This commit just returns 0 on the cpu thread
instead of playing ping pong...
2014-01-09 18:37:59 +01:00
55717ed216 D3D: Verbosify an error message. 2014-01-06 10:31:09 +00:00
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00
43e618682e Convert all vcxproj files to UNIX line endings 2013-12-31 14:03:18 -05:00
de16b7207c D3D/OGL: Add a TODO noting that we don't support GX_CULL_ALL, most notably required for accurate zfreeze emulation. 2013-12-30 20:37:59 +01:00
09f4439d0c VideoCommon: reorder cbufid in orderer. We've used once two times 2013-11-24 04:43:54 +01:00
7d58278b67 Merge branch 'efb2tex_alpha' 2013-11-24 04:02:38 +01:00
2bf7379a7f D3D: also fix MAX_COPY_BUFFERS
the D3D backend caches the colmat buffers. As we've created more different colmats, the maximum of this matrices must also be updated.
2013-11-24 04:00:12 +01:00
0a31255943 Unused arguments removed from XFBSource::Draw
Thanks neo.
2013-11-24 11:33:43 +13:00
33d8166620 Use IOFile for TextureToPng to support non-ascii
Changed save texture/screenshot uses to std::string
Removed unneeded new/delete calls when dealing with temp data.
2013-11-17 11:14:38 +13:00
71d70d896f Api was too confusing for people. 2013-11-17 10:34:34 +13:00
033ed9477e Reworked Screenshot saving.
Now OGL doesn't rely on WX for PNG saving.
FlipImageData supports (pixel data len > 3) now.
TextureToPng is now in ImageWrite.cpp/h
Video Common depends on zlib and png.
D3D no longer depends on zlib and png.
2013-11-15 13:00:38 +13:00
7e9b970240 Use libpng for saving images.
TODO: Needs threading done similiar to OGL backend.
Fixes issue 6779.
2013-11-14 21:02:49 +13:00
ca5b3b4773 atlbase not needed. Interim fix until I get png done. 2013-11-14 18:10:39 +13:00
7b53574b68 Support texture and screenshot dumping using WIC, no XP support. 2013-11-14 00:48:02 +13:00
abc3bddb54 Revert "D3D: Reintroduce depencency on D3DX11 because it's the most straightforward way to bring back some broken features."
This reverts commit a83c239765.
2013-11-14 00:34:09 +13:00
f96e9e1ae4 warnings and code formatting 2013-11-13 04:03:46 -05:00
268bdf19ce Fix format string warnings 2013-11-13 04:01:16 +01:00
22f727cc69 D3D: Use D3DX11 for taking screenshots. 2013-11-10 00:22:35 +01:00
0b02880b76 Revert "Be less dumb."
Revert "Actually, filename really does need to be a parameter because of some random debug thing."
Revert "fix non-HAVE_WX case"
Revert "Handle screenshot saving in RenderBase.  Removes dependency on D3DX11 for screenshots (texture dumping is still broken)."

This reverts commits 00fe5057f1, 74b5fb3ab4, cd46138d29 and 5f72542e06 because taking screenshots in D3D still crashed for me so there was no point in the code changes (which I found ugly anyway).
2013-11-10 00:22:33 +01:00
3de2ee5d46 D3D: Use D3DX for texture dumping. 2013-11-10 00:22:31 +01:00
a83c239765 D3D: Reintroduce depencency on D3DX11 because it's the most straightforward way to bring back some broken features.
The Dolphin development team is incapable of providing sufficient replacement for its previous usage in Dolphin and the advantages of dropping the dependency do not justify the removal of screenshots and texture dumping.

From now on, d3dx11.h, d3dx11async.h, d3dx11core.h and d3dx11tex.h are required to be stored somewhere in the header include path. I don't know if this is the case for anyone else than me, but I can't really say that I care after having people randomly merge unfinished branches into master.
2013-11-10 00:18:03 +01:00
c579637eaf Run code through the advanced tool 'sed' to remove trailing whitespace. 2013-11-03 20:54:05 -05:00
74b5fb3ab4 Actually, filename really does need to be a parameter because of some random debug thing. 2013-11-02 22:44:27 -04:00
5f72542e06 Handle screenshot saving in RenderBase. Removes dependency on D3DX11 for screenshots (texture dumping is still broken). 2013-11-02 22:19:21 -04:00
82729fcc8f Merge remote-tracking branch 'shuffle2/vc12'
Conflicts:
	Source/Core/Common/Common.vcxproj
	Source/Core/Common/Common.vcxproj.filters
2013-10-31 16:51:56 -04:00
8e0f91f70e d3d: use backend based UpdateViewport instead of VideoCommon one 2013-10-29 18:55:50 +01:00
3151d8709c VideoCommon: move ViewportCorrection into VideoCommon
D3D doesn't allow bigger viewports than rendertargets. But flipper does, so the viewport will be clipped and the transformation matrix will be changed.
This was done in the D3D backend itself. This is now moved into VideoCommon. This don't reduce code, but in this way, VideoCommon doesn't depend on the backends.
2013-10-29 18:55:50 +01:00
ccd30024b3 Update to VS2013 and a slew of build-related updates. Notes:
* Currently there is no DEBUGFAST configuration. Defining DEBUGFAST as a preprocessor definition in Base.props (or a global header) enables it for now, pending a better method. This was done to make managing the build harder to screw up. However it may not even be an issue anymore with the new .props usage.
* D3DX11SaveTextureToFile usage is dropped and not replaced.
* If you have $(DXSDK_DIR) in your global property sheets (Microsoft.Cpp.$(PlatformName).user), you need to remove it. The build will error out with a message if it's configured incorrectly.
* If you are on Windows 8 or above, you no longer need the June 2010 DirectX SDK installed to build dolphin. If you are in this situation, it is still required if you want your built binaries to be able to use XAudio2 and XInput on previous Windows versions.
* GLew updated to 1.10.0
* compiler switches added: /volatile:iso, /d2Zi+
* LTCG available via msbuild property: DolphinRelease
* SDL updated to 2.0.0
* All Externals (excl. OpenAL and SDL) are built from source.
* Now uses STL version of std::{mutex,condition_variable,thread}
* Now uses Build as root directory for *all* intermediate files
* Binary directory is populated as post-build msbuild action
* .gitignore is simplified
* UnitTests project is no longer compiled
2013-10-26 17:55:38 -07:00