WS_POPUP causes fullscreen tearing when using OpenGL and the GSPanel
rendering area exactly covers the full screen. (always affects stretch
mode, but most people have 16:9 monitors, so in general the widescreen
16:9 mode is also affected).
Fixes#1075
This is commit e093a3b1b402c067254558d24ef2d7f39f552251 from the wx3.0
stable branch.
The correct error code and message is now output when an error takes
place. Previously it would report an error code of 0 and inform us that
"The operation completed successfully".
2 notable changes which are welcomed.
-Improved SoundTouch::flush() function so that it returns precisely the desired amount of samples for exact output duration control
-Redesigned quickseek algorithm for improved sound quality when using the quickseek mode. The new quickseek algorithm can find 99% as good results as the default full-scan mode, while the quickseek algorithm is remarkably less CPU intensive.
There was a version check in the menu handling, but Windows 8.1 and
Windows 10 weren't recognised and some pre Windows 98 code was used.
This is a combination of the following wxWidgets upstream commits.
9280f836c2569d0f50301a1117f7ba144e5240d2
1966dfb17d7cb106d1dfb44df6a15b92ba3b8d5f
c87c432033f4277bc9995a4de1390a59b810a005
a8c98a119145a77b1313337314853de75562e4ab
Thanks to micove for finding the commits.
- Move the 3 public headers to a include directory.
+ pthreads ships a config.h therefore leaving them in the top dir
pollutes the include path.
- Starting with VS2015, MS defines timespec. Declare to only have it
if _MSC_VER >= 1900.
- On Linux pthread_t is an integer and you can easily do ==. On Windows
pthread_t is a structure and ==/!= have to be overloaded or every use of
those operator must be guaded with #ifdef's.
This is commit f350babf36818ba805ab0b4510b6616aaf3063fc.
.
Reading "Please update wx/compiler.h to recognize this VC++ version" gets
old pretty quickly.
It claimed to be 1.7.1 but it had a mixture from various
versions. It was hard to update as everything in the top directory
so I used upstream's way to organize files. I renamed include to
soundtouch since I did not want to #ifdef that for windows.
.
Wavfile.h is a private header so I used the private path instead of
moving the file over. This changed 3 files in the plugin folder.
- Only adds 2 security fixes.
- Add the CHANGES file.
- Add local changes:
+ setmode to _setmode
+ fileno to _fileno
+ fdopen to _fdopen
- sudonim1 removed all trailing whitespaces in svn2897 so I ran:
find . -type f -name '*.c' -o -name '*.h' | xargs sed -i 's/[[:space:]]\+$//'
This makes the delta of changes smaller.
Visual Studio flags wxCore30 as being out of date because it can't find
the rcdefs.h header file. Use the arch dependent pathname so it is
located correctly.
If pcsx2 is compiled for 32-bits and then compiled for 64-bits without
cleaning the build files, the wrong wx3.0 manifest will be included. The
same will happen vice versa.
Place the generated rcdefs.h file in a platform specific directory so
the correct manifest will always be used.
This lets wxWidgets3.0 build even when the full pathname has non ASCII
characters or spaces in it.
Note that pcsx2 and some of the plugins that rely on custom build
commands still fail.
This puts the wxWidgets3.0 and libpng generated library files into the
deps folder, and puts the other builds files in a subdirectory from
where the project files are located. This is consistent with all the
other 3rdparty projects.
The output libraries for Devel builds are also suffixed with -dev
instead of -dbg now.
Configures the settings in include/wx/msw/setup.h.
Removes icons from include/wx/msw/wx.rc.
Deletes include/wx/msw/rcdefs.h (autogenerated by build process).
Updates .gitignore by including wxWidgets3.0 build files and adds a
missing '/' to build.
This configure the VS2013 files so that the now external libpng and
libjpeg libraries are used, and to place some of the common stuff into a
property sheet.
For deleted files, I've chosen to exclude from build instead of removing
them from the project file. It's less work to re-add them if they're
required at a later stage.
Move libpng out of wxWidgets 3.0 so it's available to other projects.
Delete libjpeg since there's a newer copy already available in 3rdparty
(still outdated though).
Based on the debian version.
Note: it can be surely stripped down further
MS build script must be updated. Note: I keep wx original script as reference
Removed some missing headers from the vs2010 and vs2012 project files that were causing vs to always claim the projects were out of date.
Also removed some other entries for c/cpp files that were disabled but also missing (I did not search exhaustively).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5763 96395faa-99c1-11dd-bbfe-3dabce05a288
* some preliminary work to test/benchmark bindless texture in the future (glsl was not yet updated)
Bindless texture allow to get a GPU texture pointer and then set it directly
to the shader as a basic uniform.
=> no more texture unit selection/validation
=> no more texture validation neither texture hash lookup
3rdparty: update gl header to the latest gl4.4
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5720 96395faa-99c1-11dd-bbfe-3dabce05a288
There's been changes in the VS2008 project file which we may want to look at and port to 2010/2012 separately but it builds like this in 2010 here.
I want to wait and see if there's any issues with Linux first, too.
Thanks to lincolnh_br :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5619 96395faa-99c1-11dd-bbfe-3dabce05a288
VS2008 is harder to do as there is no automatic downgrader tools for the solution files, sorry.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5602 96395faa-99c1-11dd-bbfe-3dabce05a288
WinPcap version is 4.1.2 and only the /include and /lib folders of their developer pack are included.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5599 96395faa-99c1-11dd-bbfe-3dabce05a288
Should fix the VS2012 project files for when only VS2012 (and not VS2010) is installed.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5557 96395faa-99c1-11dd-bbfe-3dabce05a288
NOTE: The 'glew' project does NOT build yet, but it will have to be decided how to approach the problem (String literal too long in glew.rc)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5382 96395faa-99c1-11dd-bbfe-3dabce05a288
cmake: take the opportunity to drop the support of 3rdparty compilation. Distributions have got a more recent version of zlib/soundtouch anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5376 96395faa-99c1-11dd-bbfe-3dabce05a288
Notable changes:
- Changes to buffer size calculations and latency calculations.
Not a big update, just wanted to commit something before the year ended!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5023 96395faa-99c1-11dd-bbfe-3dabce05a288
* Properly allocate/delete opengl object
* Request a debug context in SDL, add some code to log opengl error
* Fix context creation. For the moment only request ogl4.1 (AMD does not support yet 4.2 and it needs libglew1.7 too...)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/gsdx-ogl@4973 96395faa-99c1-11dd-bbfe-3dabce05a288
onepad: properly connect the latest button
sdl: do not compile some useless files (which fail to compile on my system btw)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4879 96395faa-99c1-11dd-bbfe-3dabce05a288
onepad: add an option to control forcefeeback level
cmake: add an hidden option (SHARED_SDL) to build SDL as a shared library to allow pre-load
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4873 96395faa-99c1-11dd-bbfe-3dabce05a288
I also enabled WDMKS backend, but I had to change some #defines to get it to compile, and I can't seem to be able to use it on my Win7 machine. If anyone on XP wants to try it, it will be at their own risk. (use WDMKS hostApi name on the .ini)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4850 96395faa-99c1-11dd-bbfe-3dabce05a288
* Gsopen2 support for GS plugins => Support of the PCSX2 GS window configuration panel. Support of all PCSX2 shortcut.
* new shortcut: shift-f12 to stole the input. ZZogl shortcut must be prefixed with ctrl
* onepad: Support/fix/improve of configuration gui, multiple key, mouse/wiimote for analog joystick, dualshock3/sixaxis (basic), dual pad and experimental forcefeedback
Note: it is advices to delete OnePAD.ini
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4731 96395faa-99c1-11dd-bbfe-3dabce05a288
Make the GS window go full-screen on current monitor instead of always on primary monitor.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4175 96395faa-99c1-11dd-bbfe-3dabce05a288
* Copy wavfile back to spu2x directory. Note I shrink the file to only usefull feature to keep it small.
Rationale: Wavfile is not delivered by the soundtouch library (it is an example).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GregMiscellaneous@3948 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed a bug that caused all but the first stackframe walk to fail with an error.
* Improved thread safety of stack walking.
DevNotes: When walking stackframes multiple times from the same process, only the first stackframe walk would work and all others would fail with an error because of calling SymInitialize multiple times. So now SymInitialize is only called once and SymRefreshModuleList is used prior to walking, if available. (only available in winDbgHlp.dll v6.5 or later)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3546 96395faa-99c1-11dd-bbfe-3dabce05a288
* Major rework of the linker flags. Use some globals flags for -s and -m32
Add a USER_CMAKE_LD_FLAGS variable. Easier to play with advanced link flags for future gcc version (>=4.5)
* Remove useless stub file
[debian]
* minor dependency fix
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3475 96395faa-99c1-11dd-bbfe-3dabce05a288
* Print a fatal_error when users do not source the good CMakeLists file.
* Do not search system libraries if the user force the internal libraries
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3269 96395faa-99c1-11dd-bbfe-3dabce05a288
[cmake]:
* Update to use the above patch.
* Remove a52. Need to use system version.
* Remove stub file. Append pcsx2 to 3rparty library to ease futur support.
Important Note: codeblock will probably need some update. (add 3rdparty/soundtouch_linux_include in include path)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3200 96395faa-99c1-11dd-bbfe-3dabce05a288
DEV NOTE: Please leave LTCG enabled on wxBase, since wxString/wxObject and other wx-based containers benefit from it considerably.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3172 96395faa-99c1-11dd-bbfe-3dabce05a288
* Clean 3rdparty flags not used. By default use -Os not needed to make pcsx2 bigger than it already is.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3154 96395faa-99c1-11dd-bbfe-3dabce05a288
* remove the dependency on libportaudiocpp as codeblock. (issue 721)
* Improve build on 64 bit system
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3151 96395faa-99c1-11dd-bbfe-3dabce05a288
----
Revision 1505: wasapi:
- implemented support of non-Interleaved buffers (paNonInterleaved) for WASAPI blocking interface for input and output
- blocking methods will now use PA sample converters
Revision 1504: alsa: - releasing memory of non-MMAPed buffer on stream closure by Pa_CloseStream
Revision 1503: alsa:
- reverted buffer size (2048) hardcoding for non-MMAPed devices to avoid crash on wrong buffer size usage (whole area requires more work)
- optimized non-MMAPed device operation to avoid malloc(memset)/free usage on every processing call avoiding significant performance penalty
Revision 1502: alsa:
- fixed deadlock in PaAlsaStream_WaitForFrames if device is paused, poll() results are now checked for 0 and if 64 times exceeded an error (paTimedOut) is returned
- removed hardcoded low-limit of latency for non-MMAPed devices, it is an obligation for user to set an acceptable/desired latency value
- tuned XRUN recovery sequence for MMAPed devices
Revision 1501: fixed compile for DirectSound implementation under MSYS, missing DSSPEAKER_7POINT1_SURROUND define
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3133 96395faa-99c1-11dd-bbfe-3dabce05a288
Changes: Fixed all compile errors in VS 2010. Added support for new w32pthreads.v4. Fixed all MSB8012 warnings. Fixed LNK419 warnings with /DELAYLOAD. Fixed issues when compiling Devel before Release. Added GSdx Devel target. Minor cleanups.
Thanks a bunch, blood :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2930 96395faa-99c1-11dd-bbfe-3dabce05a288
Somehow there's a pair of files in wxcore that won't build correctly, even tho they did build before... and it seems to work fine if I turn them off, so i did.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2851 96395faa-99c1-11dd-bbfe-3dabce05a288
Some more wxCore fixes.
Fixed also inter-project dependency warnings.
Also some other fixed to get devel/release compiling.
Oh and apparently my VCproject folder got messed up and detached itself from svn, so it wasn't commiting with the rest...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2849 96395faa-99c1-11dd-bbfe-3dabce05a288
The *null projects don't build, and neither do ZZOgl or ZeroSPU2.
Pcsx2 project has some issues with Resources' custom build steps not being run.
Only Debug target tested.
Needs work before it's usable.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2843 96395faa-99c1-11dd-bbfe-3dabce05a288
Linux will need the new files added to it's project file thing, sorry about that :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2794 96395faa-99c1-11dd-bbfe-3dabce05a288
Work on support for Wasapi's exclusive mode. Not enabled yet.
Also lower (/8) sound out packet size. Helps the timestretcher
responsiveness and quality.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2755 96395faa-99c1-11dd-bbfe-3dabce05a288
It works fine and without further modifications in Windows, for SPU2-X and ZeroSPU2.
Linux is untested, but hopefully also fine :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2734 96395faa-99c1-11dd-bbfe-3dabce05a288
* Likely fix for various plugin configuration button hangs/crashes.
* Worked on the new GS window text label stuff a bit more (still needs more tho)
Devel Note:
* Lots of code cleanups regarding app message handling
* Added wxAppWithHelpers.cpp/h files (linux projects need updated but too tired.. >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2411 96395faa-99c1-11dd-bbfe-3dabce05a288
PCSX2: attempt at fixing what appears to be a belated thread affinity issue during the cpuspeed detect.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2363 96395faa-99c1-11dd-bbfe-3dabce05a288
DevStuff:
* Added a handful of operator+= overloads for working with wxSizers -- moderately reduces code clutter. :)
* Commented some of the wxHelpers classes (pxStaticText, wxPanelWithHelpers, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2221 96395faa-99c1-11dd-bbfe-3dabce05a288
For the curious: tooltip duration defaults to a function of your configured mouse doubleclick rate, which happens to be something a lot of us users probably set to something pretty fast or really fast, to avoid accidental double clicks (mine's like 1 or 2 notches away from the fastest setting). So my tooltips only stayed visible for like 2 seconds. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2201 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added support for indentation, as a replacement for using \t (options include methods SetIndent and Indent, and a ConsoleIndentScope class for scoped indentation of a block of WriteLns.)
* Use of Indent() as a modifier (the abstraction optionally allows use of indentation methods besides \t, if ever needed).
* Minor header file cleanups: wxWidgets standard headers are now always first in PrecompiledHeader.h files (is recommended due to cross platform setup code by wx).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2198 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented a combination static link and dynamic link system; threads still benefit from DLL-level thread management, but speed-critical actions (semaphore and mutex locks) can now inline their "accelerated" interlocks properly. Should be a nice speedup.
* Implemented a highly optimized pthread_testcancel(), that typically performs its test in a single cycle. :)
* Disabled static mutexes. They aren't needed in C++ code, and reduce mutex locking overhead nicely.
* Use intrin.h for Interlocked functions, instead of pthreads' built in ones.
* Reverted my previous commit, since TLS isn't safe in DLLs. (oops!)
* Disabled pthread_spin API, it's not entirely cross-platform and shouldn't be used anyway (bad threading model for modern computing)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1925 96395faa-99c1-11dd-bbfe-3dabce05a288
PCSX2/Win32:
* Assigned names to the threads so that they show up nicely in the debugger.
* Added more error checking in the new stdout/stderr PipeRedirection code, hopefully fixing Issue 422 (but can't reproduce the error here to be sure).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1904 96395faa-99c1-11dd-bbfe-3dabce05a288
Projects: Removed FrameworkVersion descriptor, don't think it matters for C++ code. Removed all translation files, since they're grossly out-dated and need to be remade anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1894 96395faa-99c1-11dd-bbfe-3dabce05a288
(note: Patch.cpp/Patch.h is still the odd child out in this commit, as it's destiny is to become a plugin)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1804 96395faa-99c1-11dd-bbfe-3dabce05a288
* Borrowed wxScopedPtr from wxWidgets 2.9
* Fixed up first-time startup procedures and folder selection
* Implemented most of the rest of the missing configuration options, and cleaned up some ambiguities regarding bool types and bitfields.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1649 96395faa-99c1-11dd-bbfe-3dabce05a288
* Major cleanups and improvements to the Threading namespace.
* Created CoreEmuThread class framework, which currently runs the EEcore, IOP, and VUs with threadsafe suspension, reset, and resume features.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1624 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added some icons for use in the new configuration panel.
* Added bin2cpp project, located under a new /utilities folder (it's used to generate wx Embedded Images)
* Renamed NewGUI folder to gui
* Relocated Resources folder to gui/Resources
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1477 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved the x86 emitter to /common, so that plugins can link against it if they wish.
* Created a new "utility" class in /common which houses string utils, fast memcpy, common exception classes, and other handy dandies.
* Removed old-style linux automake files from the pcsx2 dir since they were hopelessly out of date (and their multi-file-per-line format makes svn merging impossible >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1454 96395faa-99c1-11dd-bbfe-3dabce05a288
* Changed w32pthreads library into a DLL so that it can be used from plugins correctly. (NOTE: you will need to make sure to build and copy w32pthreads.dll into your pcsx2 folder).
* Switched pcsx2 from static CRT to shared CRT linking (needed to ensure correct exception handling behavior in multithreaded DLL environments).
* Switched all standard plugins in the Suite to the shared CRT, to match pcsx2's new style. :)
* Renamed _DEBUG (depreciated) to PCSX2_DEBUG (excluding Gabest projects since the ATL still uses it).
* Added intrin.h to Pcsx2Defs.h (so that it is included universally), and added intrin_x86.h for GCC compatibility.
Notes:
* Current plugin version compatibility status should be unaffected. The new shared-CRT plugins work fine with older versions of Pcsx2, and the older plugins should work fine with the new shared-CRT version of pcsx2; so long as the necessary CRT DLLs are available on the user's system.
* All future packagings of pcsx2 will include w32pthreads.dll and the Common Runtimes (CRTs).
* Existing users who do not have MSVC installed can obtain the CRTs by downloading the Microsoft Visual C++ 2008 Redistributable Package (anyone with msvc installed should already have all they need).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1388 96395faa-99c1-11dd-bbfe-3dabce05a288
CodeBlocks Project Changes:
* Fixed some absolute folder specifications (/home/pubuntu/) which went unnoticed.
* Enabled Precompiled header support (speeds up compilation about 40% for me).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1081 96395faa-99c1-11dd-bbfe-3dabce05a288
The CodeBlocks project is tested for Debug builds only, and will generate the executable binary to /yoursvnroot/bin/ [same as the MSVC/Win32 build does].
* Note: The 'regular' build script is currently broken and I haven't a darnedest clue how to fix it, since my knowledge of Automake doesn't extend past the end of this sentence.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1079 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added new files AppConfig.cpp and StringUtils.cpp, and removed memzero.h (we'll use the win/linux platform dependent implementations)
* Enabled wxWidgets memory tracing since we don't use a memory trace util of our own.
* Switched many instances of std::string to wxString.
* Added preliminary support for configuration settings and ini file creation.
* Added a set of parsing and splitting tools to StringUtils.
* Set it up so that the Console log is attachable to the main window, when dragging (fun!)
* Main window and console log window record and restore window positions between runs (only partially implemented yet)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@881 96395faa-99c1-11dd-bbfe-3dabce05a288
Added a new Threading class: ScopedLock. Used as an automatic unlocking mutex (safe for use with C++ exceptions, and cleaner/simpler code too). It works like C#'s "using" and "lock" directives, for those familiar with that.
Optimized the AtomicExchange implementations for MSVC.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@798 96395faa-99c1-11dd-bbfe-3dabce05a288
Pcsx2: Small speedup for the IOP's recClearMem (used a forceinline to cure MSVC's laxidazical inlining)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@714 96395faa-99c1-11dd-bbfe-3dabce05a288
Removed various instances of legacy VM code that is no longer needed for reference purposes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@695 96395faa-99c1-11dd-bbfe-3dabce05a288