ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/video_x.cpp
Revision 1.52 - (view) (annotate) - [select for diffs]
2010-02-21T09:59:52Z (14 years, 2 months ago) by cebix
Branch: MAIN
CVS Tags: HEAD
Changes since 1.51: +2 -2 lines
Diff to previous 1.51
fixed warnings

Revision 1.51 - (view) (annotate) - [select for diffs]
2009-02-19T07:08:15Z (15 years, 2 months ago) by asvitkine
Branch: MAIN
Changes since 1.50: +1 -0 lines
Diff to previous 1.50
[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.

Revision 1.50 - (view) (annotate) - [select for diffs]
2008-01-01T09:47:39Z (16 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.49: +1 -1 lines
Diff to previous 1.49
Happy New Year!

Revision 1.49 - (view) (annotate) - [select for diffs]
2007-07-21T11:41:07Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.48: +18 -8 lines
Diff to previous 1.48
Use semaphores to suspend the redraw thread while switching video mode.

Revision 1.48 - (view) (annotate) - [select for diffs]
2006-05-14T08:32:33Z (18 years ago) by gbeauche
Branch: MAIN
Changes since 1.47: +13 -1 lines
Diff to previous 1.47
NQD dirty boxes, X11 backend.

Revision 1.47 - (view) (annotate) - [select for diffs]
2006-05-13T17:12:18Z (18 years ago) by gbeauche
Branch: MAIN
Changes since 1.46: +10 -0 lines
Diff to previous 1.46
NQD dirty boxes, generic code
+ while we are at it, also rename a few NQD related NativeOps.

Revision 1.46 - (view) (annotate) - [select for diffs]
2005-06-25T11:39:47Z (18 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.45: +10 -10 lines
Diff to previous 1.45
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.

Revision 1.45 - (view) (annotate) - [select for diffs]
2005-06-24T22:31:28Z (18 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.44: +1 -1 lines
Diff to previous 1.44
Direct Color visual is OK for fbdev dga.

Revision 1.44 - (view) (annotate) - [select for diffs]
2005-06-22T16:40:24Z (18 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.43: +7 -3 lines
Diff to previous 1.43
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.

Revision 1.43 - (view) (annotate) - [select for diffs]
2005-06-22T12:24:36Z (18 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.42: +4 -0 lines
Diff to previous 1.42
Include <sys/mman.h> for fbdev dga without VOSF acceleration.

Revision 1.42 - (view) (annotate) - [select for diffs]
2005-05-12T11:20:00Z (19 years ago) by gbeauche
Branch: MAIN
Changes since 1.41: +138 -53 lines
Diff to previous 1.41
- 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.

Revision 1.41 - (view) (annotate) - [select for diffs]
2005-04-02T09:54:16Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.40: +14 -4 lines
Diff to previous 1.40
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

Revision 1.40 - (view) (annotate) - [select for diffs]
2005-03-28T16:19:28Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.39: +46 -27 lines
Diff to previous 1.39
Only support True Color frame buffers. Make it possible to run-time switch
depth in FBDev DGA fullscreen mode.

Revision 1.39 - (view) (annotate) - [select for diffs]
2005-03-28T09:05:28Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.38: +14 -5 lines
Diff to previous 1.38
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.

Revision 1.38 - (view) (annotate) - [select for diffs]
2005-03-27T19:05:18Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.37: +331 -31 lines
Diff to previous 1.37
- 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)

Revision 1.37 - (view) (annotate) - [select for diffs]
2005-03-27T14:53:04Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.36: +51 -7 lines
Diff to previous 1.36
Implement screen win/WIDTH/HEIGHT prefs item that overrides any other value
for windowmodes and screenmodes. Necessary for arbitrary full screen mode
sizes.

Revision 1.36 - (view) (annotate) - [select for diffs]
2005-03-27T13:44:45Z (19 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.35: +28 -19 lines
Diff to previous 1.35
Add custom video modes for full screen in unsual resolutions (e.g. 1400x1050).
X11 and SDL infrastructures have yet to be implemented

Revision 1.35 - (view) (annotate) - [select for diffs]
2005-01-30T21:48:20Z (19 years, 3 months ago) by gbeauche
Branch: MAIN
Changes since 1.34: +1 -1 lines
Diff to previous 1.34
Happy New Year 2005!

Revision 1.34 - (view) (annotate) - [select for diffs]
2004-12-18T18:34:56Z (19 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.33: +0 -2 lines
Diff to previous 1.33
Don't restrict MacOS X Xserver detection on native versions since SheepShaver
can run remotely and drawing to an X window on MacOS X.

Revision 1.33 - (view) (annotate) - [select for diffs]
2004-11-13T14:09:16Z (19 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.32: +4 -4 lines
Diff to previous 1.32
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.

Revision 1.32 - (view) (annotate) - [select for diffs]
2004-07-02T06:06:34Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.31: +0 -360 lines
Diff to previous 1.31
Move NQD to gfxaccel.cpp, since it does not depend on a specific system
implementation.

Revision 1.31 - (view) (annotate) - [select for diffs]
2004-06-30T22:03:34Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.30: +6 -2 lines
Diff to previous 1.30
Better hardware cursor mapping from SDL code.

Revision 1.30 - (view) (annotate) - [select for diffs]
2004-06-23T14:41:49Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.29: +10 -2 lines
Diff to previous 1.29
Fix for new SDL code in Basilisk II.

Revision 1.29 - (view) (annotate) - [select for diffs]
2004-06-22T20:01:18Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.28: +6 -0 lines
Diff to previous 1.28
Force use of MacX mappings on MacOS X with Apple's X server.

Revision 1.28 - (view) (annotate) - [select for diffs]
2004-06-22T19:32:00Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.27: +4 -1 lines
Diff to previous 1.27
Fix VideoExit() on OSX, there was no cancellation point in redraw_thread.

Revision 1.27 - (view) (annotate) - [select for diffs]
2004-06-11T22:09:27Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.26: +30 -13 lines
Diff to previous 1.26
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.

Revision 1.26 - (view) (annotate) - [select for diffs]
2004-06-05T06:30:58Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.25: +0 -2 lines
Diff to previous 1.25
remove now obsolete code

Revision 1.25 - (view) (annotate) - [select for diffs]
2004-06-05T06:28:21Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.24: +9 -0 lines
Diff to previous 1.24
When no fullscreen mode requested nor available, always try to pick the
first windowed mode matching current depth.

Revision 1.24 - (view) (annotate) - [select for diffs]
2004-06-02T15:41:34Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.23: +1 -6 lines
Diff to previous 1.23
Fix and enable NQD (bitblt, fillrect) on little-endian platforms too

Revision 1.23 - (view) (annotate) - [select for diffs]
2004-05-16T15:48:25Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22
Use memmove() in NQD_bitblt() in order to avoid possible overlaps

Revision 1.22 - (view) (annotate) - [select for diffs]
2004-05-14T08:24:31Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.21: +4 -4 lines
Diff to previous 1.21
Revert to use hw mac cursor acceleration in windowed mode

Revision 1.21 - (view) (annotate) - [select for diffs]
2004-05-10T16:42:37Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.20: +35 -13 lines
Diff to previous 1.20
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.

Revision 1.20 - (view) (annotate) - [select for diffs]
2004-04-22T22:54:47Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.19: +6 -6 lines
Diff to previous 1.19
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.

Revision 1.19 - (view) (annotate) - [select for diffs]
2004-04-22T21:45:16Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.18: +58 -61 lines
Diff to previous 1.18
NQD: use ReadMacInt*() and WriteMacInt*() accessors, i.e. code should now
be little-endian and 64-bit safe.

Revision 1.18 - (view) (annotate) - [select for diffs]
2004-04-22T20:57:30Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.17: +243 -53 lines
Diff to previous 1.17
Basic fillrect/invrect NQD. Code may need to be factored out somehow.
Verify that bitblt NQD transfer modes are really CopyBits() ones [MB5].

Revision 1.17 - (view) (annotate) - [select for diffs]
2004-04-18T23:17:54Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.16: +2 -0 lines
Diff to previous 1.16
Constrain NQD to powerpc (32-bit big endian) at this time

Revision 1.16 - (view) (annotate) - [select for diffs]
2004-04-18T23:03:51Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.15: +100 -48 lines
Diff to previous 1.15
Start Native QuickDraw acceleration

Revision 1.15 - (view) (annotate) - [select for diffs]
2004-04-13T22:22:21Z (20 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.14: +98 -51 lines
Diff to previous 1.14
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.

Revision 1.14 - (view) (annotate) - [select for diffs]
2004-04-11T10:46:32Z (20 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.13: +19 -0 lines
Diff to previous 1.13
Map window close widget to the Mac "power" key.

Revision 1.13 - (view) (annotate) - [select for diffs]
2004-04-10T23:15:21Z (20 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.12: +460 -177 lines
Diff to previous 1.12
Merge run-time depth switching code from Basilisk II.

Revision 1.12 - (view) (annotate) - [select for diffs]
2004-01-14T23:15:41Z (20 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.11: +2 -0 lines
Diff to previous 1.11
DGA guards

Revision 1.11 - (view) (annotate) - [select for diffs]
2004-01-12T15:37:22Z (20 years, 4 months ago) by cebix
Branch: MAIN
Changes since 1.10: +1 -1 lines
Diff to previous 1.10
Happy New Year! :)

Revision 1.10 - (view) (annotate) - [select for diffs]
2003-12-31T18:16:55Z (20 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.9: +115 -76 lines
Diff to previous 1.9
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.

Revision 1.9 - (view) (annotate) - [select for diffs]
2003-12-31T11:37:26Z (20 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.8: +15 -2 lines
Diff to previous 1.8
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.

Revision 1.8 - (view) (annotate) - [select for diffs]
2003-12-27T10:37:30Z (20 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.7: +24 -5 lines
Diff to previous 1.7
Merge in Mouse Wheel support from Basilisk II.

Revision 1.7 - (view) (annotate) - [select for diffs]
2003-12-04T22:29:15Z (20 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.6: +1 -4 lines
Diff to previous 1.6
We do need <pthread.h> in any case, especially native Linux/PPC

Revision 1.6 - (view) (annotate) - [select for diffs]
2003-11-21T17:01:33Z (20 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.5: +97 -15 lines
Diff to previous 1.5
Merge in "keycodes" support from Basilisk II. e.g. make French keyboard
layout work correctly for me.

Revision 1.5 - (view) (annotate) - [select for diffs]
2003-11-20T16:24:57Z (20 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.4: +6 -2 lines
Diff to previous 1.4
fix shm screen image allocation.

Revision 1.4 - (view) (annotate) - [select for diffs]
2003-10-26T07:54:02Z (20 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.3: +9 -3 lines
Diff to previous 1.3
allow DGA & Xshm only on local displays

Revision 1.3 - (view) (annotate) - [select for diffs]
2003-05-22T22:12:05Z (20 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.2: +218 -22 lines
Diff to previous 1.2
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.

Revision 1.2 - (view) (annotate) - [select for diffs]
2002-04-21T11:47:18Z (22 years ago) by gbeauche
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1
- Do match APPLE_16_BIT to the underlying X depth (either 15 or 16 bpp)

Revision 1.1.1.1 - (view) (annotate) - [select for diffs] (vendor branch)
2002-02-04T16:58:13Z (22 years, 3 months ago) by cebix
Branch: cebix
CVS Tags: start
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 , to next main 1.52
Imported sources

Revision 1.1 - (view) (annotate) - [select for diffs]
2002-02-04T16:58:13Z (22 years, 3 months ago) by cebix
Branch: MAIN
Branch point for: cebix
Initial revision

Convenience Links

Links to HEAD: (view) (annotate)

Compare Revisions

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.

  Diffs between and
  Type of Diff should be a