DevNotes: The main change here was to turn WndProcEater into a class and create multiple instances of it, so that it could manage the WndProcs for multiple windows concurrently. The "frame" (top-level window) gets a WndProc that sets title and handles screensaver/alt-enter hacks. The "viewport" (provided by PCSX2) gets the usual keyboard input handler WndProc. Config buttons also have their own WndProc that avoid fuzzy logic conflicts with the other two.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2277 96395faa-99c1-11dd-bbfe-3dabce05a288
* Aspect ratio and mouse cursor hiding features should be mostly functional.
* Mouse cursor by default hides after 1.75 seconds of inactivity, when in the area of the GS window. Can be forced to always hidden in the control panel. Unlike the liilypad hack, this one won't hide the mouse in the main window or title bars. (and it should work for Linux too!!)
* GS window position and size should be remembered between sessions.
Console Logger window z-order is now "bound" to the main window. When clicking either window to bring it to focus, the other window follows (implemented for Win32 only, since wxWidgets doesn't have a cross-platform implementation of the necessary SetWindowPos call).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2275 96395faa-99c1-11dd-bbfe-3dabce05a288
The old layer break detection method assumed layer1 was never longer than layer0, but layer1 is in fact the longer layer on aforementioned games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2264 96395faa-99c1-11dd-bbfe-3dabce05a288
* ConsoleLogger Optimization: Improved performance considerably for when the log gets spammed by EEcore or MTGS threads.
DevNotes:
* Added a new pxYieldToMain() method (currently implemented in Win32 only). It provides a smart way to allow passive-task worker threads to yield time to the Main Thread when important messages are pending (keyboard or mouse clicks, primarily). It also replaces the wxGetApp().Ping() stuff, which never worked anyway due to wxCommandEvents having a higher priority than native system messages.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2253 96395faa-99c1-11dd-bbfe-3dabce05a288
Cleaned up the operator overloads some more, and added operator, (yes, comma) to solve some ambiguity problems when trying to apply multiple attributes to a single window.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2252 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added bold text to indicate default options on CPU settings panels.
* Hitting 'Restore Defaults' activates the Apply button.
* Fixed some missing confirmation dialog text.
* More conversions of interface code to use the new += and | operators.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2251 96395faa-99c1-11dd-bbfe-3dabce05a288
- Removed the outer pixel cropping, it causes blur in some games. (I knew I should've done it elsewhere :p )
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2248 96395faa-99c1-11dd-bbfe-3dabce05a288
Important Notes: I designed the new MTGS to largely favor speed on GS intensive scenes, at the possible cost of some speed loss on scenes that do very little GS work (simple boring menus, mostly). The idea is that losing 5-10% on a menu screen that already runs *really* fast is a valid trade off for possibly gaining a few FPS for in-game scenes (especially slow ones that need it most). So don't benchmark this thing on game menus and expect it to be faster.
The new MTGS also has several other benefits that do not currently reflect well in benchmarking:
* It renders only two frames ahead instead of 8. This is great for fixing laggy input problems, but bad for benchmarking. If the new MTGS manages the same speed while having lost the queued frames count, it's a sizable achievement.
* It works a lot nicer with the GSdx software rasterizer in general.
* It's new design will work nicer with future DX11 multithreaded features, when supported.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2243 96395faa-99c1-11dd-bbfe-3dabce05a288
- Remove the silly upscale hacks from an earlier commit
- Replace them with a less silly version in CreateSource() :p
- Remove a few of the outer pixels from the visible area, as they often contain glitches
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2241 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev notes:
* Renamed MtgsthreadObject to SysMtgsThread (matches naming pattern of other thread classes).
* Added accessors for GetMtgs() and GetCoreThread() [rationale for them documented in source comments]
* Removed wxHelpers namespace since we're using px name prefix instead for most stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2238 96395faa-99c1-11dd-bbfe-3dabce05a288
If this rev is nice and stable then I'll go ahead and break things again by implementing the planned synchronization speedups. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2235 96395faa-99c1-11dd-bbfe-3dabce05a288
* Optimized switch() for dispatching ringbuffer commands (slight speedup maybe, in very GPU intensive apps)
* Removed 8-frame queue (fixes lag when using vsync + fullscreen). New queue is 2 frames max.
* Restart the ring buffer on every other vsync, regardless of ringbuffer fill status (re-uses front portion of the ringbuffer more often, which should improve L2 cache performance nicely).
Planned features:
* A few m_WritePos threshold checks: Need to implement smart logic for putting the EE thread to sleep when the MTGS ring buffer is lagging (readpos is way behind writepos), and should restart ringbuffer every frame if frames have large amounts of data.
* Add periodic EE wakeup commands, or an EE wakeup threshold point to the Ringbuffer; to signal a sleeping EE that the ringbuffer is nearing completion and is ready for more data.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2230 96395faa-99c1-11dd-bbfe-3dabce05a288
* Botting NoDisc with "Skip BIOS" enabled should work now (untested).
* Renamed StaticText / StaticHeading helpers to simply Text and Heading.
* Made the iR5900 recompiler's stack alignment check a dynamic toggle instead of a dev/debug build preprocessor.
* Fix annoying linux linker errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2229 96395faa-99c1-11dd-bbfe-3dabce05a288