fixed warnings
[Patch by Mike Sliczniak] I was testing some other SS patches and I noticed that when I ran an X11 build of SS there were not all the video modes I expected in the the control strip. Mac OS X 10.5 changed the form of the DISPLAY environment variable. The reason for this is that the DISPLAY variable looks like this in Leopard: /tmp/launch-XXXXXX/:0 The Xs are like in mktemp.
Happy New Year!
Use semaphores to suspend the redraw thread while switching video mode.
NQD dirty boxes, X11 backend.
NQD dirty boxes, generic code + while we are at it, also rename a few NQD related NativeOps.
Use fast spinlocks only for small enough atomic operations. Otherwise, you run into some performance problems in e.g. video graphics experience because of busywaits in the current spin_lock() implementation.
Direct Color visual is OK for fbdev dga.
Fix crash in FBDev DGA mode when it failed to initialize (here, that was because fb visual was Direct Color instead of True Color). We used to initialize the_buffer* even if !open_display. Report that gracefully with the dedicated STR_OPEN_WINDOW_ERR.
Include <sys/mman.h> for fbdev dga without VOSF acceleration.
- Sync with latest B2 video_vosf.h updates. - Enable VidMode extension with FBDev DGA graphics. - Factor out FBDev/XF86 DGA code. - Fix pointer grab in fbdev DGA mode, thus fixing scrolling screens in lower VidModes. - Only select VidModes that match the requested resolutions, exactly. - Fix VideoQuitFullScreen() in non FBDev mode.
Better lock and zero VOSF data, especially for DGA mode. Also make sure that we really update the whole screen when sub-8bpp modes are used
Only support True Color frame buffers. Make it possible to run-time switch depth in FBDev DGA fullscreen mode.
Handle "screen fbdev/WIDTH/HEIGHT" to force use of FBDev DGA instead of XF86 DGA mode. In other words, root user can now use FBDev DGA though it's always recommended to run SheepShaver with a normal user. Increase "ramsize" bounds in the GUI and fully migrate to new "screen" modes. Remove "windowmodes" and "screenmodes" defaults.
- Implement fullscreen DGA via fbdev access under Linux. Besides, r/w access to /dev/mem is required on Linux to use XF86 DGA mode. Otherwise, there is now a fallback to fbdev. - Forward port some features from Basilisk II (set_window_name, disable_mouse_accel). - Don't SIGSTOP the emulation thread on suspend since that would completely stop the process on Linux. Use a frame buffer lock instead (as B2 does)
Implement screen win/WIDTH/HEIGHT prefs item that overrides any other value for windowmodes and screenmodes. Necessary for arbitrary full screen mode sizes.
Add custom video modes for full screen in unsual resolutions (e.g. 1400x1050). X11 and SDL infrastructures have yet to be implemented
Happy New Year 2005!
Don't restrict MacOS X Xserver detection on native versions since SheepShaver can run remotely and drawing to an X window on MacOS X.
Implement Direct Addressing mode similarly to Basilisk II. This is to get SheepShaver working on OSes that don't support maipping of Low Memory globals at 0x00000000, e.g. Windows.
Move NQD to gfxaccel.cpp, since it does not depend on a specific system implementation.
Better hardware cursor mapping from SDL code.
Fix for new SDL code in Basilisk II.
Force use of MacX mappings on MacOS X with Apple's X server.
Fix VideoExit() on OSX, there was no cancellation point in redraw_thread.
Merge event2keycode() from Basilisk II, aka. make Option key mapped to Mode_Switch work as real option key. Merge caps_on handling from B2 too.
remove now obsolete code
When no fullscreen mode requested nor available, always try to pick the first windowed mode matching current depth.
Fix and enable NQD (bitblt, fillrect) on little-endian platforms too
Use memmove() in NQD_bitblt() in order to avoid possible overlaps
Revert to use hw mac cursor acceleration in windowed mode
Disable MacOS -> X11 copying of cursor in windowed mode too. You can recompile with "mac_cursor_enabled" constant set to true. Disabling it causes a better looking cursor that is not "disappearing" sometimes with e.g. Microsoft Internet Explorer.
Extend NativeOp count to 64 (6-bit value), aka fix NATIVE_FILLRECT opcpdes. Translate NQD_{bitblt,fillrect,invrect} to direct native calls. Use Mac2HostAddr() for converting Mac base address to native.
NQD: use ReadMacInt*() and WriteMacInt*() accessors, i.e. code should now be little-endian and 64-bit safe.
Basic fillrect/invrect NQD. Code may need to be factored out somehow. Verify that bitblt NQD transfer modes are really CopyBits() ones [MB5].
Constrain NQD to powerpc (32-bit big endian) at this time
Start Native QuickDraw acceleration
Fix DGA mode for emulated PPC targets. It currently doesn't work in native mode as the stack is corrupted and we are jumping to garbage when moving the mouse. Also add 1152x768 resolution from PBG4, but make timing match the 1152x870 version. Cleanups, further merges from Basilisk II tree.
Map window close widget to the Mac "power" key.
Merge run-time depth switching code from Basilisk II.
DGA guards
Happy New Year! :)
Add fast X11 display locking routines based on spinlocks, or on pthreads in the worst case. Optimize out GetScrap() case when we already own the selection. i.e. make it smoother. Use our own XDisplay{Un,}Lock() routines.
Handle copy-paste between X11 and MacOS. X11 events handling code has to be improved in copy mode (when we own the selection to service other clients). Also note that older klipper has a tendency to request clipboard data several times per second.
Merge in Mouse Wheel support from Basilisk II.
We do need <pthread.h> in any case, especially native Linux/PPC
Merge in "keycodes" support from Basilisk II. e.g. make French keyboard layout work correctly for me.
fix shm screen image allocation.
allow DGA & Xshm only on local displays
Import VOSF from Basilisk II for faster and more accurate video refresh. There may be some bugs left though. Rework sigsegv_handler() a little to accomodate VOSF way of life. TODO: merge video drivers infrastructure from B2.
- Do match APPLE_16_BIT to the underlying X depth (either 15 or 16 bpp)
Imported sources
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.