There are many new tests and examples that we wrote internally at VMware,
but couldn't release immediately since they depended on virtual GPU features which were not yet publicly released in any products. This checkin moves those features from our internal repository to the open source repository. Future development on these tests and examples will take place directly in the open source repository. The primary feature added by this patch is 'Screen Object', a new dynamic display management extension supported by Workstation 7.0 and Fusion 3.0. See the README for a quick explanation.
40
README.txt
|
@ -35,6 +35,46 @@ Workstation, Player, or Fusion. Some of the examples will work on
|
|||
older versions, but Workstation 6.5.x or Fusion 2.0.x is strongly
|
||||
recommended.
|
||||
|
||||
Screen Object
|
||||
-------------
|
||||
|
||||
Any of the examples that begin with "screen-" make use of a new virtual
|
||||
hardware feature called "Screen Object". This feature first appears in
|
||||
Workstation 7.0 and Fusion 3.0, and it is enabled by default only for
|
||||
Windows 7, Windows Server 2008, Windows Vista, and Mac OS guests. To
|
||||
use Screen Object, you can pick one of those guest OS types or you can
|
||||
add a configuration option to your VM's VMX file or to your per-user
|
||||
VMware config file:
|
||||
|
||||
svga.enableScreenObject = TRUE
|
||||
|
||||
We plan to enable Screen Object by default in a future virtual machine
|
||||
hardware version. Screen Object is enabled conditionally for the above
|
||||
guest OS types on hardware version 7 (the current hardware version
|
||||
for Workstation 6.5 and 7.0, Fusion 2.x and 3.0) in order to provide
|
||||
better support to the WDDM and Mac OS video drivers on VMware's desktop
|
||||
products. Screen Object is never available on hardware version 6 and
|
||||
earlier.
|
||||
|
||||
Screen Object allows several new capabilities including more efficient
|
||||
management of framebuffer memory, dynamic creation and destruction of
|
||||
virtual monitors, and it is leading up to the deprecation of BAR1
|
||||
memory in favor of guest system memory.
|
||||
|
||||
To see the new Screen Object capabilities in action, try the
|
||||
screen-multimon test. Note that not all Screen Object features are
|
||||
fully supported on all host OSes. Currently, only Fusion 3.0 supports
|
||||
the following features:
|
||||
|
||||
- Rendering and reading back from non-rooted screens.
|
||||
- Preserving contents of screens which overlap in the
|
||||
virtual coordinate space.
|
||||
- Hardware-accelerated scaling for the new SVGA3D-to-screen blit.
|
||||
|
||||
These are relatively minor edge cases, though. If you design a
|
||||
multi-monitor driver using Screen Object, it should run correctly on
|
||||
all hosts that support Screen Object.
|
||||
|
||||
Contents
|
||||
--------
|
||||
|
||||
|
|
BIN
bin/2dmark.img
BIN
bin/backdoor-tclo.img
Executable file
9
bin/backdoor-tclo.vmx
Executable file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 4
|
||||
displayname = backdoor-tclo
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = backdoor-tclo.img
|
BIN
bin/bunnies.img
BIN
bin/cube.img
BIN
bin/cubemark.img
BIN
bin/gmr-test.img
BIN
bin/noscreen-cursor.img
Executable file
9
bin/noscreen-cursor.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 4
|
||||
displayname = noscreen-cursor
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = noscreen-cursor.img
|
BIN
bin/null.img
Executable file
9
bin/null.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 4
|
||||
displayname = null
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = null.img
|
BIN
bin/pong.img
BIN
bin/resolution-set.img
Executable file
9
bin/resolution-set.vmx
Executable file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 4
|
||||
displayname = resolution-set
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = resolution-set.img
|
BIN
bin/screen-annotation.img
Executable file
9
bin/screen-annotation.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-annotation
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-annotation.img
|
BIN
bin/screen-cursor.img
Executable file
9
bin/screen-cursor.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-cursor
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-cursor.img
|
BIN
bin/screen-dma-coalesce.img
Executable file
9
bin/screen-dma-coalesce.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-dma-coalesce
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-dma-coalesce.img
|
BIN
bin/screen-gmr-discontig.img
Executable file
9
bin/screen-gmr-discontig.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 32
|
||||
displayname = screen-gmr-discontig
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-gmr-discontig.img
|
BIN
bin/screen-gmr-remap.img
Executable file
9
bin/screen-gmr-remap.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 32
|
||||
displayname = screen-gmr-remap
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-gmr-remap.img
|
BIN
bin/screen-multimon.img
Executable file
9
bin/screen-multimon.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-multimon
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-multimon.img
|
BIN
bin/screen-present-clip.img
Executable file
9
bin/screen-present-clip.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-present-clip
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-present-clip.img
|
BIN
bin/screen-render-test.img
Executable file
9
bin/screen-render-test.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-render-test
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-render-test.img
|
BIN
bin/screen-simple.img
Executable file
9
bin/screen-simple.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-simple
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-simple.img
|
BIN
bin/screen-text.img
Executable file
9
bin/screen-text.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 16
|
||||
displayname = screen-text
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = screen-text.img
|
BIN
bin/tiny-2d-updates.img
Executable file
9
bin/tiny-2d-updates.vmx
Normal file
|
@ -0,0 +1,9 @@
|
|||
config.version = 8
|
||||
virtualHW.version = 7
|
||||
memsize = 4
|
||||
displayname = tiny-2d-updates
|
||||
guestOS = other
|
||||
mks.enable3d = TRUE
|
||||
floppy0.startConnected = TRUE
|
||||
floppy0.fileType = file
|
||||
floppy0.fileName = tiny-2d-updates.img
|
6
examples/noscreen-cursor/Makefile
Normal file
|
@ -0,0 +1,6 @@
|
|||
TARGET = noscreen-cursor.img
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
96
examples/noscreen-cursor/beachball_mono.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
96
examples/noscreen-cursor/beachball_mono_xor.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0xff, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf3, 0xff, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xcf, 0xff, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0x9f, 0xff, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0x7f, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xfe, 0xff, 0xff, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xfd, 0xff, 0xff, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xfb, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xf3, 0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf7, 0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xef, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xef, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xdf, 0xff, 0xff, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xdf, 0xff, 0xff, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0xff, 0xff, 0xef, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0xff, 0xfe, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0xff, 0xf9, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0xff, 0xf3, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0xff, 0xcf, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0xff, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
196
examples/noscreen-cursor/chip_mono.h
Normal file
|
@ -0,0 +1,196 @@
|
|||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xe0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x07, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0xfc, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xfc, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0xf8, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x0f, 0xff, 0x80, 0x00, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xf8, 0x07, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0x00, 0x78, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0x30, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xff, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x1f, 0xff, 0x0f, 0xfe, 0x3f, 0xff, 0xff, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xc7, 0xfc, 0x43, 0xf8, 0xff, 0xff, 0xff, 0xc4, 0x3f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0xf1, 0xfb, 0xfb, 0xe3, 0xff, 0xff, 0xff, 0x18, 0x1f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0xfc, 0x79, 0xf3, 0x8f, 0xff, 0xff, 0xfc, 0x03, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0x1c, 0x06, 0x3f, 0xff, 0xff, 0xf1, 0xcf, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x09, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0xe7, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x04, 0x7f, 0xff, 0xff, 0xf1, 0xe3, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x01, 0x1f, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xfc, 0x3f, 0xfb, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x04, 0x67, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf0, 0x1f, 0xfb, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0x11, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xc6, 0x4f, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0xc4, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x08, 0x0f, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x27, 0xf1, 0x9f, 0xff, 0xff, 0x7f, 0xff, 0xfc, 0x43, 0xc7, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x23, 0xfc, 0x47, 0xff, 0xff, 0x7f, 0xff, 0xf1, 0xf3, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x23, 0xff, 0x19, 0xff, 0xff, 0x7f, 0xff, 0xc7, 0xfb, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x2b, 0xff, 0xc4, 0x7f, 0xff, 0x7f, 0xff, 0x1f, 0xf9, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x28, 0xff, 0xf1, 0x1f, 0xff, 0x7f, 0xfc, 0x1f, 0xfd, 0xc7, 0xf8, 0x04, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x3f, 0xfc, 0x47, 0xff, 0x7f, 0xf1, 0x4f, 0xfd, 0x07, 0xf8, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x0f, 0xff, 0x11, 0xff, 0x7f, 0xc6, 0x07, 0xfc, 0x07, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x03, 0xff, 0xc6, 0x7f, 0x7f, 0x01, 0xc7, 0xfc, 0x07, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0xff, 0xf1, 0x1f, 0x7c, 0x73, 0xe3, 0xfc, 0x07, 0xf8, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x3f, 0xfc, 0x47, 0x71, 0xf9, 0xe3, 0xfc, 0x07, 0xf0, 0x02, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x0f, 0xff, 0x11, 0x41, 0xfd, 0xeb, 0xfc, 0x03, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x03, 0xff, 0xc4, 0x14, 0xfc, 0xe3, 0xfc, 0x03, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xb0, 0xff, 0xf1, 0x20, 0x7e, 0xc3, 0xfc, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xb0, 0x3f, 0xfc, 0x1c, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0xa0, 0x0f, 0xff, 0x3e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xa0, 0x03, 0xff, 0x7e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xa0, 0x00, 0xff, 0x7e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0xa0, 0x00, 0x3f, 0x7e, 0x3e, 0x03, 0xf0, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x0f, 0x7c, 0x3e, 0x01, 0xe0, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x03, 0x70, 0x3e, 0x01, 0x20, 0x00, 0x60, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x60, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x20, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x30, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
744
examples/noscreen-cursor/main.c
Normal file
|
@ -0,0 +1,744 @@
|
|||
/*
|
||||
* This is a modified version of the screen-cursor test, which does
|
||||
* not use Screen Object or GMRs. It will run on older versions of the
|
||||
* virtual SVGA device.
|
||||
*
|
||||
* This test doesn't draw anything on the screen, but it still
|
||||
* supports the same set of cursors.
|
||||
*
|
||||
* XXX: Use screen-cursor whenever possible. This test is harder to use
|
||||
* and doesn't test as many things.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "keyboard.h"
|
||||
#include "vmbackdoor.h"
|
||||
#include "timer.h"
|
||||
#include "math.h"
|
||||
|
||||
|
||||
/*
|
||||
* Global data
|
||||
*/
|
||||
|
||||
int currentTest = -1;
|
||||
|
||||
#define FRAME_RATE 60
|
||||
|
||||
|
||||
/*
|
||||
* Test Cases
|
||||
*/
|
||||
|
||||
void
|
||||
testAlphaArrow(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 1,
|
||||
.hotspotY = 1,
|
||||
.width = 36,
|
||||
.height = 51,
|
||||
};
|
||||
|
||||
static const uint32 data[] = {
|
||||
# include "rgba_arrow.h"
|
||||
};
|
||||
|
||||
void *fifoData;
|
||||
|
||||
/*
|
||||
* Switch to 8-bit mode. Alpha cursors should work even if the
|
||||
* legacy framebuffer is in a low color depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, &fifoData);
|
||||
memcpy(fifoData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testGradient(int size)
|
||||
{
|
||||
const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = size / 2,
|
||||
.hotspotY = size / 2,
|
||||
.width = size,
|
||||
.height = size,
|
||||
};
|
||||
|
||||
uint32 *data;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, (void**) &data);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint8 alpha = y * 255 / cursor.height;
|
||||
|
||||
/* Solid white, with pre-multiplied alpha: L = 255 * alpha / 255 */
|
||||
uint8 luma = alpha;
|
||||
|
||||
*(data++) = (alpha << 24) | (luma << 16) | (luma << 8) | luma;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testGradient64(void)
|
||||
{
|
||||
testGradient(64);
|
||||
}
|
||||
|
||||
void
|
||||
testGradient180(void)
|
||||
{
|
||||
testGradient(180);
|
||||
}
|
||||
|
||||
void
|
||||
testGradient256(void)
|
||||
{
|
||||
testGradient(256);
|
||||
}
|
||||
|
||||
void
|
||||
testMonochrome(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 48,
|
||||
.height = 48,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "beachball_mono.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
/*
|
||||
* Switch to 32bpp mode, just because we can. Monochrome cursors
|
||||
* work in any framebuffer depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testMonochromeXOR(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 48,
|
||||
.height = 48,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "beachball_mono_xor.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testMonochromeLarge(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 50,
|
||||
.hotspotY = 50,
|
||||
.width = 100,
|
||||
.height = 98,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "chip_mono.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
/*
|
||||
* Switch to 32bpp mode, just because we can. Monochrome cursors
|
||||
* work in any framebuffer depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testANDXOR32(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 16,
|
||||
.hotspotY = 16,
|
||||
.width = 32,
|
||||
.height = 32,
|
||||
.andMaskDepth = 32,
|
||||
.xorMaskDepth = 32
|
||||
};
|
||||
|
||||
uint32 *andData, *xorData;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
|
||||
*(andData++) = 0x808080;
|
||||
*(xorData++) = y * 127 / cursor.height;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
static const uint32 yellowCrabData[] = {
|
||||
# include "yellow_crab_rgba.h"
|
||||
};
|
||||
|
||||
void
|
||||
buildCrabANDMask(uint8 *andData)
|
||||
{
|
||||
const uint32 *rgba = yellowCrabData;
|
||||
const int width = 48;
|
||||
const int height = 50;
|
||||
|
||||
uint32 andPitch = ((width + 31) / 32) * 4;
|
||||
uint8 *andLine;
|
||||
int x, y;
|
||||
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
andLine = andData;
|
||||
andData += andPitch;
|
||||
memset(andLine, 0, andPitch);
|
||||
|
||||
for (x = 0; x < width; x++) {
|
||||
uint32 color = *(rgba++);
|
||||
|
||||
*andLine <<= 1;
|
||||
|
||||
if ((color & 0xFF000000) == 0) {
|
||||
/*
|
||||
* Transparent pixel
|
||||
*/
|
||||
*andLine |= 1;
|
||||
}
|
||||
|
||||
if ((x & 7) == 7) {
|
||||
andLine++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testCrabAlpha(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
};
|
||||
|
||||
void *fifoData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, &fifoData);
|
||||
memcpy(fifoData, yellowCrabData, sizeof yellowCrabData);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR32(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 32
|
||||
};
|
||||
|
||||
uint8 *andData;
|
||||
uint32 *xorData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
buildCrabANDMask(andData);
|
||||
memcpy(xorData, yellowCrabData, sizeof yellowCrabData);
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR16(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 16
|
||||
};
|
||||
|
||||
const uint32 *rgba = yellowCrabData;
|
||||
uint8 *andData;
|
||||
uint16 *xorData;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 16);
|
||||
if (SVGA_ReadReg(SVGA_REG_DEPTH) != 16) {
|
||||
Console_Panic("Expected SVGA_REG_DEPTH == 16 for 16bpp mode");
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
buildCrabANDMask(andData);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint32 color = *(rgba++);
|
||||
|
||||
/*
|
||||
* Convert to RGB 5-6-5
|
||||
*/
|
||||
|
||||
uint8 r = (color >> 19) & 0x1F;
|
||||
uint8 g = (color >> 10) & 0x3F;
|
||||
uint8 b = (color >> 3) & 0x1F;
|
||||
|
||||
*(xorData++) = (r << 11) | (g << 5) | b;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR8(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 8
|
||||
};
|
||||
|
||||
static const uint8 crabPixels[] = {
|
||||
# include "yellow_crab_256_pixels.h"
|
||||
};
|
||||
|
||||
static const uint8 crabColormap[] = {
|
||||
# include "yellow_crab_256_colormap.h"
|
||||
};
|
||||
|
||||
uint8 *andData, *xorData;
|
||||
int i;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
if (SVGA_ReadReg(SVGA_REG_PSEUDOCOLOR) != TRUE) {
|
||||
Console_Panic("Expected SVGA_REG_PSUEDOCOLOR == TRUE for 8bpp mode");
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the crab's colormap into the SVGA palette registers.
|
||||
*/
|
||||
for (i = 0; i < arraysize(crabColormap); i++) {
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i, crabColormap[i]);
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
buildCrabANDMask(andData);
|
||||
memcpy(xorData, crabPixels, sizeof crabPixels);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
createPaletteCursor(void)
|
||||
{
|
||||
/*
|
||||
* Set up a cursor which shows every color in the palette. It has
|
||||
* a 1-pixel border of color 255, but every other color forms a
|
||||
* 16x16 grid in which each square is a different color. Each grid
|
||||
* square is 3x3 pixels.
|
||||
*
|
||||
* We also take this opportunity to use an 8-bit AND mask, but it's
|
||||
* fully opaque (all zeroes).
|
||||
*
|
||||
* This does mean that to function correctly, this cursor needs
|
||||
* color 0 to be black. The SVGA device doesn't specify whether
|
||||
* AND/XOR masks are applied before or after pseudocolor emulation,
|
||||
* so we need to be okay with either.
|
||||
*/
|
||||
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 49,
|
||||
.height = 49,
|
||||
.andMaskDepth = 8,
|
||||
.xorMaskDepth = 8
|
||||
};
|
||||
|
||||
uint8 *andData, *xorData;
|
||||
uint8 *line;
|
||||
int x, y;
|
||||
uint32 pitch = roundup(cursor.width, sizeof(uint32)) * sizeof(uint32);
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
if (SVGA_ReadReg(SVGA_REG_PSEUDOCOLOR) != TRUE) {
|
||||
Console_Panic("Expected SVGA_REG_PSUEDOCOLOR == TRUE for 8bpp mode");
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
memset(andData, 0, pitch * cursor.height);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
line = xorData;
|
||||
xorData += pitch;
|
||||
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint8 color;
|
||||
|
||||
if (y == 0 || x == 0 || y == cursor.height - 1 || x == cursor.width - 1) {
|
||||
/* Border color */
|
||||
color = 0xFF;
|
||||
|
||||
} else {
|
||||
int row = (y - 1) / 3;
|
||||
int column = (x - 1) / 3;
|
||||
|
||||
color = row * 16 + column;
|
||||
}
|
||||
|
||||
*(line++) = color;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
animatePalette(void)
|
||||
{
|
||||
/*
|
||||
* Animate the palette. This is stolen from the vbe-palette test...
|
||||
*/
|
||||
|
||||
static int tick = 0;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Let the phase of each color channel slowly drift around.
|
||||
*/
|
||||
const float rPhase = tick * 0.001;
|
||||
const float gPhase = tick * 0.002;
|
||||
const float bPhase = tick * 0.003;
|
||||
|
||||
/*
|
||||
* Animate every color except 0 (used for the AND mask) and 255
|
||||
* (for the border).
|
||||
*/
|
||||
|
||||
for (i = 1; i < 255; i++) {
|
||||
const int x = (i & 0x0F) - 3;
|
||||
const int y = (i >> 4) - 3;
|
||||
const float t = (x*x + y*y) * 0.05 + tick * 0.02;
|
||||
|
||||
const uint8 r = sinf(t + rPhase) * 0x7f + 0x80;
|
||||
const uint8 g = sinf(t + gPhase) * 0x7f + 0x80;
|
||||
const uint8 b = sinf(t + bPhase) * 0x7f + 0x80;
|
||||
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 0, r);
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 1, g);
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 2, b);
|
||||
}
|
||||
|
||||
tick++;
|
||||
}
|
||||
|
||||
void
|
||||
blit32(const uint32 *src, int srcX, int srcY, int srcWidth,
|
||||
uint32 *dest, int destX, int destY, int destWidth,
|
||||
int copyWidth, int copyHeight)
|
||||
{
|
||||
src += srcX + srcY * srcWidth;
|
||||
dest += destX + destY * destWidth;
|
||||
|
||||
while (copyHeight--) {
|
||||
memcpy32(dest, src, copyWidth);
|
||||
src += srcWidth;
|
||||
dest += destWidth;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testCursorAnim(void)
|
||||
{
|
||||
/*
|
||||
* Animate a cursor image of a moon orbiting a planet. The cursor
|
||||
* hotspot is always centered on the planet, but we dynamically
|
||||
* size the cursor according to the bounding box around the planet
|
||||
* and moon, and we dynamically adjust the hotspot to keep it
|
||||
* centered on the moon.
|
||||
*/
|
||||
|
||||
const int moonWidth = 10;
|
||||
const int planetWidth = 20;
|
||||
|
||||
static int tick = 0;
|
||||
float angle = tick * 0.03;
|
||||
tick++;
|
||||
|
||||
const int orbitRadius = 40;
|
||||
int orbitX = cosf(angle) * orbitRadius;
|
||||
int orbitY = sinf(angle) * orbitRadius;
|
||||
|
||||
int width, height, planetX, planetY, moonX, moonY;
|
||||
|
||||
if (orbitX >= 0) {
|
||||
width = planetWidth + orbitX;
|
||||
planetX = planetWidth/2;
|
||||
moonX = planetX + orbitX;
|
||||
} else {
|
||||
width = planetWidth - orbitX;
|
||||
moonX = planetWidth/2;
|
||||
planetX = moonX - orbitX;
|
||||
}
|
||||
|
||||
if (orbitY >= 0) {
|
||||
height = planetWidth + orbitY;
|
||||
planetY = planetWidth/2;
|
||||
moonY = planetY + orbitY;
|
||||
} else {
|
||||
height = planetWidth - orbitY;
|
||||
moonY = planetWidth/2;
|
||||
planetY = moonY - orbitY;
|
||||
}
|
||||
|
||||
const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = planetX,
|
||||
.hotspotY = planetY,
|
||||
.width = width,
|
||||
.height = height,
|
||||
};
|
||||
|
||||
uint32 *image;
|
||||
|
||||
static const uint32 planet[] = {
|
||||
# include "planet_rgba.h"
|
||||
};
|
||||
static const uint32 moon[] = {
|
||||
# include "moon_rgba.h"
|
||||
};
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, (void**) &image);
|
||||
memset32(image, 0, width * height);
|
||||
|
||||
blit32(planet, 0, 0, planetWidth,
|
||||
image, planetX - planetWidth/2, planetY - planetWidth/2, width,
|
||||
planetWidth, planetWidth);
|
||||
|
||||
blit32(moon, 0, 0, moonWidth,
|
||||
image, moonX - moonWidth/2, moonY - moonWidth/2, width,
|
||||
moonWidth, moonWidth);
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* gTestCases --
|
||||
*
|
||||
* Master array of cursor test cases. Each one has a title and a
|
||||
* function pointer. The function is run once when a test mode is
|
||||
* selected.
|
||||
*/
|
||||
|
||||
struct {
|
||||
void (*fn)(void);
|
||||
const char *title;
|
||||
void (*animateFn)(void);
|
||||
} gTestCases[] = {
|
||||
{ testAlphaArrow, "Translucent arrow cursor (36x51)" },
|
||||
{ testGradient64, "Gradient from transparent white to opaque white (64x64)" },
|
||||
{ testGradient180, "Gradient from transparent white to opaque white (180x180)" },
|
||||
{ testGradient256, "Gradient from transparent white to opaque white (256x256)" },
|
||||
{ testMonochrome, "Monochrome beachball cursor (48x48)" },
|
||||
{ testMonochromeXOR, "Monochrome beachball cursor with XOR pixels (48x48)" },
|
||||
{ testMonochromeLarge, "Monochrome chip cursor (100x96)" },
|
||||
{ testANDXOR32, "AND masks off 7 LSBs, XOR draws blue gradient (32x32)" },
|
||||
{ testCrabAlpha, "Yellow crab, alpha blended (48x50)" },
|
||||
{ testCrabANDXOR32, "Yellow crab, 1-bit AND, 32-bit XOR (48x50)" },
|
||||
{ testCrabANDXOR16, "Yellow crab, 1-bit AND, 16-bit XOR (48x50)" },
|
||||
{ testCrabANDXOR8, "Yellow crab, 1-bit AND, 8-bit XOR (48x50)" },
|
||||
{ createPaletteCursor, "Palette animation, 8-bit AND/XOR (49x49)", animatePalette },
|
||||
{ testCursorAnim, "Animated cursor (variable size and hotspot)", testCursorAnim }
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* selectTest --
|
||||
*
|
||||
* Switch to a new current test case. Hilight the new test, un-hilight
|
||||
* the old one, and call the new test's function.
|
||||
*/
|
||||
|
||||
void
|
||||
selectTest(int newTest)
|
||||
{
|
||||
if (newTest < 0) {
|
||||
newTest += arraysize(gTestCases);
|
||||
} else if (newTest >= arraysize(gTestCases)) {
|
||||
newTest -= arraysize(gTestCases);
|
||||
}
|
||||
|
||||
if (currentTest != newTest) {
|
||||
currentTest = newTest;
|
||||
gTestCases[newTest].fn();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization and main loop. This reads a global array of test
|
||||
* cases, and presents a menu which cycles through them. The main
|
||||
* loop services keyboard and mouse input.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
const int screenWidth = 640;
|
||||
const int screenHeight = 480;
|
||||
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
|
||||
Timer_InitPIT(PIT_HZ / FRAME_RATE);
|
||||
Intr_SetMask(PIT_IRQ, TRUE);
|
||||
|
||||
SVGA_Init();
|
||||
|
||||
Keyboard_Init();
|
||||
VMBackdoor_MouseInit(TRUE);
|
||||
SVGA_SetMode(screenWidth, screenHeight, 32);
|
||||
|
||||
selectTest(0);
|
||||
|
||||
while (1) {
|
||||
int prevTest = currentTest - 1;
|
||||
int nextTest = currentTest + 1;
|
||||
static VMMousePacket mouseState;
|
||||
const int kbdMouseSpeed = 100;
|
||||
Bool needCursorUpdate = FALSE;
|
||||
|
||||
while (Keyboard_IsKeyPressed(KEY_UP)) {
|
||||
selectTest(prevTest);
|
||||
}
|
||||
|
||||
while (Keyboard_IsKeyPressed(KEY_DOWN)) {
|
||||
selectTest(nextTest);
|
||||
}
|
||||
|
||||
while (VMBackdoor_MouseGetPacket(&mouseState)) {
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('w')) {
|
||||
mouseState.y -= kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('s')) {
|
||||
mouseState.y += kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('a')) {
|
||||
mouseState.x -= kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('d')) {
|
||||
mouseState.x += kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (needCursorUpdate) {
|
||||
/*
|
||||
* Fixed-point to pixels.
|
||||
*/
|
||||
SVGASignedPoint pixelLocation = {
|
||||
mouseState.x * screenWidth / 65535,
|
||||
mouseState.y * screenHeight / 65535
|
||||
};
|
||||
SVGA_MoveCursor(TRUE, pixelLocation.x, pixelLocation.y, SVGA_ID_INVALID);
|
||||
}
|
||||
|
||||
/*
|
||||
* Some tests are animated...
|
||||
*/
|
||||
|
||||
if (gTestCases[currentTest].animateFn) {
|
||||
gTestCases[currentTest].animateFn();
|
||||
}
|
||||
|
||||
/*
|
||||
* Wait for the next frame.
|
||||
*/
|
||||
|
||||
Intr_Halt();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
examples/noscreen-cursor/moon_rgba.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
0x00000000, 0x00000000, 0x3e020202, 0xc9161515, 0xdc1f1f1f, 0xdc1f1e1e,
|
||||
0xc9131212, 0x3e020202, 0x00000000, 0x00000000, 0x00000000, 0x880f0e0e,
|
||||
0xe6484646, 0xf5d1c9c9, 0xf5d6cfcf, 0xf5cbc5c5, 0xf5b6b1b1, 0xe63b3a3a,
|
||||
0x880c0b0b, 0x00000000, 0x3e020202, 0xe6484545, 0xf5e5dcdc, 0xf5e9e0e0,
|
||||
0xf5e0d9d9, 0xf5d4cdcd, 0xf5c7c2c2, 0xf5bab5b5, 0xe6383737, 0x3e010101,
|
||||
0xc9161515, 0xf5cfc7c7, 0xf5e7dede, 0xf5f2e8e8, 0xf5e5dddd, 0xf5d8d1d1,
|
||||
0xf5cac4c4, 0xf5bdb8b8, 0xf5a7a3a3, 0xc9111111, 0xdc1f1f1f, 0xf5d3cdcd,
|
||||
0xf5ded7d7, 0xf5e4dcdc, 0xf5dfd8d8, 0xf5d6cfcf, 0xf5c9c4c4, 0xf5bcb8b8,
|
||||
0xf5afabab, 0xdc191919, 0xdc1e1e1e, 0xf5c9c4c4, 0xf5d2cbcb, 0xf5d7d0d0,
|
||||
0xf5d5cece, 0xf5cec8c8, 0xf5c4bfbf, 0xf5b9b5b5, 0xf5acaaaa, 0xdc191919,
|
||||
0xc9121212, 0xf5b4b1b1, 0xf5c5c0c0, 0xf5c9c4c4, 0xf5c8c3c3, 0xf5c4bfbf,
|
||||
0xf5bcb8b8, 0xf5b2afaf, 0xf59f9d9d, 0xc9101010, 0x3e020202, 0xe63b3939,
|
||||
0xf5b8b4b4, 0xf5bbb7b7, 0xf5bbb7b7, 0xf5b8b4b4, 0xf5b2afaf, 0xf5aba8a8,
|
||||
0xe6353434, 0x3e010101, 0x00000000, 0x880b0b0b, 0xe6383737, 0xf5a5a2a2,
|
||||
0xf5aeabab, 0xf5aba9a9, 0xf59f9d9d, 0xe6353434, 0x880b0b0b, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3e010101, 0xc9111010, 0xdc191919, 0xdc191919,
|
||||
0xc9101010, 0x3e010101, 0x00000000, 0x00000000,
|
67
examples/noscreen-cursor/planet_rgba.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000,
|
||||
0x49010101, 0x900d0d10, 0xc4141419, 0xd71e1e25, 0xd71c1c25, 0xc4121218,
|
||||
0x910a0a0f, 0x49000001, 0x04000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x2d000000, 0xd3161618, 0xf0696876, 0xf79c9ab2, 0xf5b2afd0, 0xf5acabcf,
|
||||
0xf5a4a4cc, 0xf5999ac6, 0xf77a7ba5, 0xf04a4c6b, 0xd20e0e15, 0x2d000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x8a0c0c0e, 0xe5343338, 0xf6bbb6c9, 0xf5cac5db, 0xf5c5c1d9,
|
||||
0xf5bfbbd6, 0xf5b6b3d3, 0xf5acabcf, 0xf5a3a2cb, 0xf59898c7, 0xf58d8fc3,
|
||||
0xf6767aaf, 0xe51f2030, 0x8a07070b, 0x02000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x8a0c0c0e, 0xf1716e79, 0xf5d3cddd, 0xf5d7d1df,
|
||||
0xf5d6d0de, 0xf5d1cbdc, 0xf5c8c4da, 0xf5bfbbd6, 0xf5b4b2d2, 0xf5aaa9ce,
|
||||
0xf59e9ec9, 0xf59394c5, 0xf5878ac1, 0xf57b7fbc, 0xf13e4166, 0x8a06070b,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x2d000000, 0xe5343338, 0xf5d2ccdd,
|
||||
0xf5dcd5e1, 0xf5e2dbe3, 0xf5e2dbe3, 0xf5dbd4e0, 0xf5d1cbdc, 0xf5c6c2d9,
|
||||
0xf5bbb7d5, 0xf5afadd0, 0xf5a3a3cb, 0xf59798c7, 0xf58c8ec3, 0xf57f83be,
|
||||
0xf57479b9, 0xe51a1c2e, 0x2d000000, 0x00000000, 0x04000000, 0xd3161518,
|
||||
0xf6b8b4c8, 0xf5d5cede, 0xf5e0d9e3, 0xf5ebe2e7, 0xf5ede4e8, 0xf5e2dbe3,
|
||||
0xf5d7d0df, 0xf5cac5db, 0xf5bfbbd6, 0xf5b2b0d1, 0xf5a7a6cd, 0xf59a9bc8,
|
||||
0xf58f91c4, 0xf58285bf, 0xf5777aba, 0xf66267a7, 0xd20a0b14, 0x04000000,
|
||||
0x49010101, 0xf0686576, 0xf5c6c2d9, 0xf5d2ccdd, 0xf5ded7e2, 0xf5e9e0e6,
|
||||
0xf5ede4e8, 0xf5e3dce4, 0xf5d8d2df, 0xf5ccc7dc, 0xf5c1bdd7, 0xf5b4b1d2,
|
||||
0xf5a9a7cd, 0xf59c9cc8, 0xf59192c4, 0xf58487c0, 0xf5797cbb, 0xf56c72b6,
|
||||
0xf0353962, 0x49000001, 0x910d0d0f, 0xf79997b1, 0xf5c2bed7, 0xf5ccc7dc,
|
||||
0xf5d7d0df, 0xf5ded8e2, 0xf5e1dae3, 0xf5ddd6e1, 0xf5d5cede, 0xf5cac5db,
|
||||
0xf5c0bcd6, 0xf5b4b1d2, 0xf5a9a7cd, 0xf59c9cc8, 0xf59192c4, 0xf58587c0,
|
||||
0xf5797cbb, 0xf56d72b6, 0xf7515796, 0x9106070d, 0xc4141419, 0xf5aeadce,
|
||||
0xf5bbb8d5, 0xf5c4c0d8, 0xf5cdc7dc, 0xf5d3cddd, 0xf5d6cfde, 0xf5d4cede,
|
||||
0xf5cdc8dc, 0xf5c5c1d9, 0xf5bcb8d5, 0xf5b1aed1, 0xf5a6a5cc, 0xf59b9bc8,
|
||||
0xf59091c4, 0xf58487c0, 0xf5797cbb, 0xf56c72b6, 0xf56066b0, 0xc40a0b15,
|
||||
0xd71d1d25, 0xf5a9a8cd, 0xf5b2b0d1, 0xf5bbb8d5, 0xf5c3bfd8, 0xf5c7c3da,
|
||||
0xf5cac4db, 0xf5c8c4da, 0xf5c4c1d9, 0xf5bebad6, 0xf5b6b3d3, 0xf5acabcf,
|
||||
0xf5a2a2cb, 0xf59798c7, 0xf58d8fc3, 0xf58185bf, 0xf5777aba, 0xf56b71b6,
|
||||
0xf56066b1, 0xd7101020, 0xd71b1b25, 0xf5a0a0ca, 0xf5a9a8cd, 0xf5b0aed1,
|
||||
0xf5b7b4d3, 0xf5bcb8d5, 0xf5bebad6, 0xf5bebad6, 0xf5bbb7d4, 0xf5b5b2d2,
|
||||
0xf5aeacd0, 0xf5a6a5cc, 0xf59d9dc9, 0xf59394c5, 0xf5898bc2, 0xf57e82bd,
|
||||
0xf57479b9, 0xf5686eb5, 0xf55e64b0, 0xd70f1020, 0xc4111118, 0xf59596c4,
|
||||
0xf59f9fc9, 0xf5a6a5cc, 0xf5ababcf, 0xf5afadd0, 0xf5b2afd1, 0xf5b2afd1,
|
||||
0xf5afadd0, 0xf5abaacf, 0xf5a6a5cc, 0xf59e9ec9, 0xf59697c6, 0xf58e90c4,
|
||||
0xf58487c0, 0xf57a7ebc, 0xf57075b8, 0xf5656bb3, 0xf55961ae, 0xc4090a15,
|
||||
0x910a0a0e, 0xf77778a3, 0xf59495c5, 0xf59b9bc8, 0xf5a0a0ca, 0xf5a4a3cb,
|
||||
0xf5a6a5cc, 0xf5a6a5cc, 0xf5a5a4cc, 0xf5a1a1ca, 0xf59c9cc8, 0xf59697c6,
|
||||
0xf58f91c4, 0xf58789c1, 0xf57e81bd, 0xf5757aba, 0xf56b71b6, 0xf56167b2,
|
||||
0xf7485093, 0x9105060d, 0x49000001, 0xf0484a6a, 0xf58a8cc2, 0xf59091c4,
|
||||
0xf59495c5, 0xf59898c7, 0xf59a9ac7, 0xf59a9bc8, 0xf5999ac7, 0xf59697c6,
|
||||
0xf59393c5, 0xf58d8fc3, 0xf58789c1, 0xf57f82be, 0xf5777bbb, 0xf56e74b7,
|
||||
0xf5656bb3, 0xf55c63b0, 0xf02e3160, 0x49000000, 0x04000000, 0xd30e0e16,
|
||||
0xf67477ad, 0xf58487c0, 0xf5898bc2, 0xf58c8ec3, 0xf58e90c4, 0xf58f91c4,
|
||||
0xf58e90c4, 0xf58c8ec3, 0xf5888bc1, 0xf58386bf, 0xf57d81bd, 0xf5777bbb,
|
||||
0xf57075b8, 0xf5676db4, 0xf55f66b1, 0xf64f56a0, 0xd2090913, 0x04000000,
|
||||
0x00000000, 0x2d000000, 0xe51d1f30, 0xf5797cbb, 0xf57c80bd, 0xf58083be,
|
||||
0xf58285bf, 0xf58286bf, 0xf58285bf, 0xf58083be, 0xf57d81bd, 0xf57a7dbb,
|
||||
0xf57479b9, 0xf56e74b7, 0xf5676db4, 0xf56066b1, 0xf55860ae, 0xe514172c,
|
||||
0x2d000000, 0x00000000, 0x00000000, 0x00000000, 0x8a06070b, 0xf13c3f65,
|
||||
0xf57176b8, 0xf57479b9, 0xf5767aba, 0xf5777bba, 0xf5777aba, 0xf5757aba,
|
||||
0xf57378b9, 0xf56f74b7, 0xf56a70b5, 0xf5646bb3, 0xf55f65b1, 0xf55860ae,
|
||||
0xf12c315f, 0x8a04050a, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x8a06060b, 0xe51a1b2e, 0xf66065a6, 0xf56a70b5, 0xf56b71b6,
|
||||
0xf56b71b6, 0xf5696fb5, 0xf5676db4, 0xf5646ab3, 0xf56067b1, 0xf55b62af,
|
||||
0xf64e56a0, 0xe514172c, 0x8a04050a, 0x02000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2d000000, 0xd30a0b14,
|
||||
0xf0343862, 0xf7505695, 0xf55e65af, 0xf55e65b1, 0xf55c63b0, 0xf55860ae,
|
||||
0xf7484f92, 0xf02d315f, 0xd2090913, 0x2d000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x04000000, 0x49000001, 0x9006070d, 0xc4090b15, 0xd70f1020,
|
||||
0xd70f1020, 0xc4090a15, 0x9105060d, 0x49000000, 0x04000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
307
examples/noscreen-cursor/rgba_arrow.h
Normal file
|
@ -0,0 +1,307 @@
|
|||
0x6e000000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x90000001, 0x57000001, 0x13000000, 0x04000000, 0x04000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x6a010103, 0x4a030306, 0x69000001, 0x09000000, 0x08000000, 0x07000000,
|
||||
0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x62020204, 0x2106060c, 0x4b06060c, 0x70010103, 0x1e000000, 0x0d000000,
|
||||
0x08000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x64020205, 0x2f080910, 0x2c090a12, 0x6207070e, 0x6b020205, 0x22000000,
|
||||
0x0d000000, 0x09000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x5d020205, 0x380a0a13, 0x330c0c17, 0x410c0d18, 0x6c090a12, 0x76020205,
|
||||
0x13000000, 0x0d000000, 0x09000000, 0x04000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x55030407, 0x440c0d18, 0x390e0e1b, 0x440f101e, 0x4a10101f, 0x6f0d0d1a,
|
||||
0x78030307, 0x24000000, 0x0f000000, 0x09000000, 0x05000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x4d040408, 0x4d0d0e1a, 0x3f10111f, 0x49111221, 0x4f121323, 0x53131325,
|
||||
0x7d0d0e1a, 0x72040409, 0x24000000, 0x0f000000, 0x0a000000, 0x05000000,
|
||||
0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x42040408, 0x590f0f1c, 0x44121324, 0x4e131425, 0x55141528, 0x59151629,
|
||||
0x60151629, 0x820f101e, 0x7705050a, 0x16000000, 0x10000000, 0x0a000000,
|
||||
0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x30020205, 0x720f0f1d, 0x4b151528, 0x5516172b, 0x5c17182c, 0x6018182e,
|
||||
0x64181930, 0x67191a31, 0x8016162a, 0x7706070d, 0x26000001, 0x12000000,
|
||||
0x0a000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x2a020205, 0x77101020, 0x5117182d, 0x5b18192f, 0x62191a30, 0x671a1b32,
|
||||
0x6b1b1c34, 0x6e1c1c35, 0x701c1d36, 0x8a15162a, 0x7708080f, 0x2a000001,
|
||||
0x11000000, 0x0b000000, 0x06000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x29020205, 0x77121223, 0x56191a30, 0x611a1b32, 0x681b1c34, 0x6d1c1d36,
|
||||
0x711d1e38, 0x751e1f3a, 0x781f203b, 0x7c1e203b, 0x9218192f, 0x7b080810,
|
||||
0x1e000000, 0x12000000, 0x0b000000, 0x06000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x27020205, 0x78131325, 0x5e1c1d36, 0x691c1e38, 0x701d1e39, 0x751e1f3a,
|
||||
0x7a1f203c, 0x7d20213e, 0x80212240, 0x83222342, 0x85222443, 0x9b1d1e39,
|
||||
0x8d080810, 0x30000001, 0x15000000, 0x0c000000, 0x06000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x24020204, 0x78121224, 0x661e1f3a, 0x6f1f203c, 0x771f213d, 0x7c20223e,
|
||||
0x81212241, 0x84222342, 0x87232544, 0x8a242546, 0x8c252647, 0x8e252648,
|
||||
0xa41c1d37, 0x8a090a13, 0x32000102, 0x14000000, 0x0d000000, 0x07000000,
|
||||
0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x21000001, 0x7a0f0f1e, 0x6e1f203c, 0x75212240, 0x7d222341, 0x83222343,
|
||||
0x88232545, 0x8b252646, 0x8e252648, 0x9126274a, 0x9427284c, 0x9628294d,
|
||||
0x99282a4d, 0xab1e1f3a, 0x92090912, 0x23000000, 0x16000000, 0x0d000000,
|
||||
0x06000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1f000000, 0x7e0e0f1c, 0x7721223f, 0x7c232445, 0x84242546, 0x8b252647,
|
||||
0x90262749, 0x9327284b, 0x9628294d, 0x99282a4f, 0x9c2a2b50, 0x9f2b2c52,
|
||||
0xa12b2d54, 0xa22c2d55, 0xb3242546, 0x960a0a14, 0x36010102, 0x1a000000,
|
||||
0x0e000000, 0x08000000, 0x04000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1a000001, 0x7b0f101e, 0x7f222443, 0x82262749, 0x8b26284a, 0x9227294c,
|
||||
0x97282a4e, 0x9a292a4f, 0x9d2a2b51, 0xa02b2d53, 0xa32c2e55, 0xa52c2e56,
|
||||
0xa82e2f58, 0xaa2e305a, 0xab2e305b, 0xb8222443, 0x910b0b17, 0x37010102,
|
||||
0x18000000, 0x0f000000, 0x08000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x15000102, 0x780f0f1d, 0x88242545, 0x8828294d, 0x91282a4f, 0x98292a4f,
|
||||
0x9e2a2c52, 0xa12b2d53, 0xa32c2e55, 0xa62d2e57, 0xaa2e3059, 0xac2f305b,
|
||||
0xaf30325c, 0xb131325e, 0xb2313360, 0xb431335e, 0xbd252749, 0x960c0c18,
|
||||
0x28000000, 0x19000000, 0x0f000000, 0x07000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x0e000001, 0x740d0e1a, 0x91242647, 0x8f2a2c52, 0x982b2d53, 0xa02c2d55,
|
||||
0xa62d2e57, 0xa92e2f58, 0xac2f305a, 0xaf30315c, 0xb130325d, 0xb4313360,
|
||||
0xb6323461, 0xb9333563, 0xba333564, 0xbb343765, 0xbc353767, 0xc62d2f58,
|
||||
0x9b0b0c17, 0x3a010103, 0x1d000000, 0x10000000, 0x08000000, 0x04000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x06000000, 0x6c0a0a14, 0x99252748, 0x942c2e55, 0x9e2d2f57, 0xa52d2f59,
|
||||
0xac2f315b, 0xaf30325c, 0xb230325e, 0xb5323360, 0xb7323462, 0xb9333563,
|
||||
0xbc353665, 0xbe353766, 0xc0363868, 0xc237396a, 0xc3383a6b, 0xc3383a6d,
|
||||
0xca2a2b52, 0x93111122, 0x3a020204, 0x1b000000, 0x10000000, 0x08000000,
|
||||
0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x660a0a13, 0x9e27284c, 0x9a2f305a, 0xa32f315c, 0xab30325d,
|
||||
0xb231335f, 0xb5323361, 0xb8333562, 0xba343564, 0xbd353666, 0xbf353868,
|
||||
0xc2363969, 0xc438396b, 0xc6383b6d, 0xc8393b6e, 0xc93a3b6f, 0xca3b3c72,
|
||||
0xcb3a3d71, 0xcb2f315c, 0x99101121, 0x31010102, 0x1b000000, 0x10000000,
|
||||
0x07000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x62090a13, 0xa2292a50, 0xa031325f, 0xa9323360, 0xb1323461,
|
||||
0xb8333664, 0xbc353665, 0xbf353767, 0xc1363869, 0xc337396a, 0xc6383a6c,
|
||||
0xc8393a6e, 0xca393c6f, 0xcc3b3c71, 0xcf3c3e74, 0xd03c3e74, 0xd23d3f76,
|
||||
0xd23e4078, 0xd23e4179, 0xd9353867, 0xaa101120, 0x44020205, 0x20000000,
|
||||
0x11000000, 0x09000000, 0x05000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x5f080810, 0xa6292a4f, 0xa5333563, 0xae333564, 0xb7353766,
|
||||
0xbe363868, 0xc237396a, 0xc438396b, 0xc7383b6e, 0xc9393b6f, 0xcb3a3c70,
|
||||
0xcd3b3d72, 0xd03c3e74, 0xd23d3f75, 0xd43e4077, 0xd53f4179, 0xd740417b,
|
||||
0xd940437d, 0xd941447d, 0xd941447e, 0xdb333562, 0xa8131425, 0x47020305,
|
||||
0x1e000000, 0x12000000, 0x0a000000, 0x04000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x5806070d, 0xa9282a4e, 0xab353767, 0xb3363868, 0xbc37386a,
|
||||
0xc3383a6c, 0xc7383b6e, 0xc93a3b6f, 0xcc3b3c71, 0xce3b3d72, 0xd03c3e74,
|
||||
0xd23d3f76, 0xd43e4077, 0xd63f4179, 0xd840427b, 0xda40437d, 0xdc42447f,
|
||||
0xde434581, 0xdf434582, 0xe0444784, 0xe0444682, 0xe1353767, 0xb1121223,
|
||||
0x36010102, 0x1f000000, 0x13000000, 0x09000000, 0x04000000, 0x01000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x44020305, 0xa8252749, 0xb1383a6c, 0xba383b6e, 0xc2393c6f,
|
||||
0xc93b3c71, 0xcd3b3d72, 0xd03c3e74, 0xd23d3f76, 0xd43e4077, 0xd63e4179,
|
||||
0xd840427b, 0xda40437d, 0xdc41447e, 0xde434480, 0xdf434582, 0xe1444683,
|
||||
0xe3454785, 0xe5464887, 0xe6474989, 0xe7484a8b, 0xe7484b8c, 0xea3d4077,
|
||||
0xb4131324, 0x4a020205, 0x25000000, 0x14000000, 0x0b000000, 0x05000000,
|
||||
0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x3e020204, 0xab242647, 0xb73a3c70, 0xbf3b3c71, 0xc73c3d73,
|
||||
0xce3c3f75, 0xd23d4076, 0xd53e4178, 0xd740417b, 0xd940427c, 0xdb41437e,
|
||||
0xdd424480, 0xde434580, 0xe0434682, 0xe2454684, 0xe4454886, 0xe6474988,
|
||||
0xe8474a8a, 0xe9484a8b, 0xea494c8c, 0xec4a4c8f, 0xec4a4d90, 0xec4b4d91,
|
||||
0xeb393b6f, 0xb115162a, 0x4c020205, 0x22000000, 0x15000000, 0x0b000000,
|
||||
0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x37030306, 0xad252648, 0xbc3c3e74, 0xc43d3f76, 0xcb3e3f76,
|
||||
0xd33f4179, 0xd63f427a, 0xd940437c, 0xdb41437e, 0xde434480, 0xe0434682,
|
||||
0xe1444683, 0xe3454785, 0xe5464887, 0xe6474988, 0xe8474a8a, 0xea484b8c,
|
||||
0xec4a4c8e, 0xed4a4d90, 0xee4b4e90, 0xf04c4f92, 0xf14c4f94, 0xf24e5096,
|
||||
0xf24c4f94, 0xef3b3d73, 0xb7141427, 0x3b010102, 0x23000000, 0x15000000,
|
||||
0x09000000, 0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x2c030307, 0xb31f203e, 0xc23f4178, 0xca40427b, 0xd140437c,
|
||||
0xd941447e, 0xdc42457f, 0xde434480, 0xe2434581, 0xe43f427b, 0xe640417b,
|
||||
0xe8424580, 0xe9444683, 0xea454886, 0xeb464989, 0xed484b8b, 0xef494b8e,
|
||||
0xf04b4d90, 0xf14b4e91, 0xf24c4f94, 0xf44d5095, 0xf54e5197, 0xf650529a,
|
||||
0xf851549d, 0xf851549d, 0xfb444683, 0xb8151629, 0x4e030305, 0x28000000,
|
||||
0x15000000, 0x0b000000, 0x05000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x20030306, 0xb41c1e38, 0xc841437d, 0xcf41447f, 0xd6434480,
|
||||
0xdd434682, 0xe0444783, 0xe3454885, 0xe4363869, 0xce1d1d37, 0xca1a1c34,
|
||||
0xd7222443, 0xd7252649, 0xd7282a4e, 0xe32c2d55, 0xe42c2e56, 0xe42e305a,
|
||||
0xe930325d, 0xeb2f315d, 0xeb30315e, 0xf0323462, 0xf43a3c6f, 0xf53d3f76,
|
||||
0xf7424480, 0xfb424581, 0xfb444784, 0xf6323460, 0xb40f101e, 0x4e020204,
|
||||
0x23000000, 0x14000000, 0x0a000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x0d010102, 0xb117182e, 0xcd434581, 0xd4444683, 0xdb444785,
|
||||
0xe1464887, 0xe5464988, 0xe7464988, 0xda1d1e3a, 0x8c020205, 0x85010103,
|
||||
0x8a030307, 0x89030408, 0x89040408, 0x8f05050a, 0x9005050a, 0x9105060b,
|
||||
0x9405060b, 0x9605050b, 0x9805050b, 0xa3080811, 0xac0d0e1a, 0xad0e0e1b,
|
||||
0xb1101120, 0xb9111221, 0xb6111223, 0xb0111121, 0xa407080f, 0x65020205,
|
||||
0x32000000, 0x1f000000, 0x10000000, 0x06000000, 0x02000000, 0x00000000,
|
||||
0x00000000, 0x04000000, 0xae15162a, 0xd3454786, 0xd9464987, 0xe0474989,
|
||||
0xe6484a8a, 0xea494c8d, 0xef3b3d74, 0xb107070e, 0x7c000000, 0x79000000,
|
||||
0x74000000, 0x6f000000, 0x6b000000, 0x69000000, 0x6a000000, 0x6c000000,
|
||||
0x6e000000, 0x70000000, 0x72000000, 0x73000000, 0x75000000, 0x77000000,
|
||||
0x79000000, 0x79000000, 0x78000000, 0x71000000, 0x66000000, 0x56000000,
|
||||
0x3d000000, 0x29000000, 0x18000000, 0x0a000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x04000000, 0xaa15162a, 0xd9474a8a, 0xde484a8b, 0xe4494c8d,
|
||||
0xea4a4d8f, 0xee494c8e, 0xef28294d, 0x8a020203, 0x7c000000, 0x76000000,
|
||||
0x6a000000, 0x60000000, 0x58000000, 0x54000000, 0x54000000, 0x55000000,
|
||||
0x57000000, 0x59000000, 0x5a000000, 0x5c000000, 0x5e000000, 0x60000000,
|
||||
0x62000000, 0x64000000, 0x65000000, 0x62000000, 0x5c000000, 0x50000000,
|
||||
0x3d000000, 0x2a000000, 0x1a000000, 0x0b000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x03000000, 0x9c111222, 0xdf484a8b, 0xe34a4d90, 0xe94b4e92,
|
||||
0xee4c4f93, 0xf341447f, 0xcf16162b, 0x80000000, 0x7a000000, 0x6f000000,
|
||||
0x5d000000, 0x4d000000, 0x42000000, 0x3b000000, 0x39000000, 0x3a000000,
|
||||
0x3c000000, 0x3d000000, 0x3e000000, 0x40000000, 0x41000000, 0x43000000,
|
||||
0x46000000, 0x48000000, 0x49000000, 0x48000000, 0x46000000, 0x3f000000,
|
||||
0x32000000, 0x24000000, 0x17000000, 0x0a000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x03000000, 0x8a0e0e1c, 0xe7484b8b, 0xea4e5095, 0xee4e5197,
|
||||
0xf34e5196, 0xf0303260, 0xa106070e, 0x80000000, 0x76000000, 0x65000000,
|
||||
0x4b000000, 0x36000000, 0x28000000, 0x1f000000, 0x1d000000, 0x1d000000,
|
||||
0x1e000000, 0x1f000000, 0x1f000000, 0x20000000, 0x21000000, 0x23000000,
|
||||
0x25000000, 0x26000000, 0x27000000, 0x28000000, 0x27000000, 0x25000000,
|
||||
0x1e000000, 0x16000000, 0x0e000000, 0x07000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x02000000, 0x6e06070d, 0xed474a8a, 0xee4f5299, 0xf250539a,
|
||||
0xf6494c8d, 0xd61d1f39, 0x90010103, 0x7f000000, 0x71000000, 0x5b000000,
|
||||
0x3d000000, 0x28000000, 0x19000000, 0x10000000, 0x0d000000, 0x0d000000,
|
||||
0x0d000000, 0x0e000000, 0x0e000000, 0x0f000000, 0x0f000000, 0x10000000,
|
||||
0x11000000, 0x12000000, 0x13000000, 0x14000000, 0x13000000, 0x12000000,
|
||||
0x0f000000, 0x0c000000, 0x08000000, 0x04000000, 0x02000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x60040408, 0xf2464987, 0xf351539c, 0xf752559e,
|
||||
0xf53f417a, 0xb60c0c17, 0x85000000, 0x7c000000, 0x6a000000, 0x51000000,
|
||||
0x32000000, 0x1c000000, 0x0f000000, 0x07000000, 0x05000000, 0x04000000,
|
||||
0x04000000, 0x04000000, 0x05000000, 0x05000000, 0x05000000, 0x06000000,
|
||||
0x06000000, 0x07000000, 0x07000000, 0x07000000, 0x07000000, 0x07000000,
|
||||
0x06000000, 0x05000000, 0x03000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x5607070e, 0xf8464787, 0xf95356a2, 0xfc5456a3,
|
||||
0xe3222342, 0x8f020205, 0x82000000, 0x76000000, 0x60000000, 0x44000000,
|
||||
0x25000000, 0x13000000, 0x08000000, 0x02000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x02000000, 0x02000000, 0x02000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x4907070e, 0xfd42447f, 0xfe5659a6, 0xff4c4f92,
|
||||
0xbb0c0c18, 0x7c000000, 0x7f000000, 0x6f000000, 0x56000000, 0x3a000000,
|
||||
0x1d000000, 0x0d000000, 0x05000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x3807070e, 0xff3e4077, 0xff575aa6, 0xfd333564,
|
||||
0x82030307, 0x7a000000, 0x7a000000, 0x67000000, 0x4b000000, 0x2f000000,
|
||||
0x16000000, 0x09000000, 0x03000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x10010103, 0xff333562, 0xff4d5094, 0xc7191a31,
|
||||
0x66000000, 0x74000000, 0x72000000, 0x59000000, 0x3e000000, 0x24000000,
|
||||
0x0f000000, 0x06000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xfb30315c, 0xf83b3d72, 0x860b0b16,
|
||||
0x62000000, 0x6e000000, 0x68000000, 0x4e000000, 0x33000000, 0x1b000000,
|
||||
0x0a000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xf5292b51, 0xce252749, 0x5b020205,
|
||||
0x5c000000, 0x65000000, 0x5c000000, 0x41000000, 0x28000000, 0x14000000,
|
||||
0x07000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xdc191a32, 0x8a0c0c18, 0x3b000000,
|
||||
0x52000000, 0x57000000, 0x4d000000, 0x33000000, 0x1d000000, 0x0d000000,
|
||||
0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x04000000, 0xb00d0e1a, 0x4d040408, 0x33000000,
|
||||
0x48000000, 0x4a000000, 0x3f000000, 0x27000000, 0x15000000, 0x09000000,
|
||||
0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x03000000, 0x5707070e, 0x20000001, 0x2c000000,
|
||||
0x3c000000, 0x3c000000, 0x31000000, 0x1d000000, 0x0e000000, 0x06000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x03000000, 0x09000000, 0x14000000, 0x21000000,
|
||||
0x2c000000, 0x2b000000, 0x22000000, 0x13000000, 0x09000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x02000000, 0x07000000, 0x0f000000, 0x18000000,
|
||||
0x1f000000, 0x1e000000, 0x17000000, 0x0c000000, 0x05000000, 0x02000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x05000000, 0x0a000000, 0x0f000000,
|
||||
0x14000000, 0x13000000, 0x0e000000, 0x07000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x05000000, 0x08000000,
|
||||
0x09000000, 0x08000000, 0x06000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x03000000,
|
||||
0x04000000, 0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
|
96
examples/noscreen-cursor/yellow_crab_256_colormap.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x7c, 0xf9,
|
||||
0x01, 0xc8, 0x24, 0x28, 0x25, 0x3b, 0xe5, 0x0e,
|
||||
0x10, 0x06, 0x10, 0x11, 0x08, 0x10, 0x11, 0x0c,
|
||||
0x10, 0x12, 0x06, 0x10, 0x12, 0x09, 0x12, 0x14,
|
||||
0x11, 0x15, 0x16, 0x14, 0x18, 0x1a, 0x11, 0x19,
|
||||
0x1a, 0x18, 0x1b, 0x1c, 0x17, 0x1c, 0x1e, 0x1b,
|
||||
0x1d, 0x1f, 0x0f, 0x1d, 0x1f, 0x1b, 0x23, 0x24,
|
||||
0x1c, 0x26, 0x27, 0x19, 0x26, 0x28, 0x25, 0x29,
|
||||
0x2b, 0x28, 0x2c, 0x2c, 0x19, 0x2a, 0x2c, 0x1f,
|
||||
0x2d, 0x2d, 0x17, 0x30, 0x30, 0x2a, 0x33, 0x32,
|
||||
0x17, 0x30, 0x32, 0x24, 0x32, 0x31, 0x2a, 0x30,
|
||||
0x32, 0x2f, 0x32, 0x34, 0x31, 0x36, 0x37, 0x25,
|
||||
0x38, 0x38, 0x21, 0x36, 0x38, 0x35, 0x3a, 0x3a,
|
||||
0x17, 0x39, 0x3c, 0x30, 0x40, 0x3e, 0x32, 0x3f,
|
||||
0x3e, 0x37, 0x40, 0x41, 0x19, 0x3e, 0x40, 0x2e,
|
||||
0x44, 0x43, 0x2a, 0x44, 0x44, 0x3d, 0x44, 0x46,
|
||||
0x43, 0x48, 0x48, 0x30, 0x48, 0x4a, 0x2a, 0x48,
|
||||
0x49, 0x36, 0x4b, 0x4b, 0x43, 0x4c, 0x4d, 0x3b,
|
||||
0x4c, 0x4c, 0x48, 0x4d, 0x50, 0x42, 0x52, 0x54,
|
||||
0x30, 0x54, 0x53, 0x3b, 0x53, 0x54, 0x41, 0x55,
|
||||
0x54, 0x3c, 0x57, 0x57, 0x2b, 0x59, 0x59, 0x40,
|
||||
0x5d, 0x5a, 0x3d, 0x5c, 0x5f, 0x22, 0x59, 0x5b,
|
||||
0x58, 0x5c, 0x5b, 0x54, 0x5c, 0x5e, 0x3a, 0x61,
|
||||
0x5f, 0x29, 0x62, 0x5f, 0x41, 0x62, 0x62, 0x36,
|
||||
0x62, 0x61, 0x49, 0x61, 0x63, 0x4f, 0x63, 0x65,
|
||||
0x40, 0x67, 0x68, 0x28, 0x67, 0x68, 0x3d, 0x66,
|
||||
0x67, 0x65, 0x68, 0x6a, 0x45, 0x6a, 0x69, 0x50,
|
||||
0x6c, 0x6c, 0x41, 0x6a, 0x6a, 0x5c, 0x69, 0x6d,
|
||||
0x4d, 0x6f, 0x6d, 0x3d, 0x70, 0x6d, 0x4f, 0x71,
|
||||
0x72, 0x33, 0x71, 0x72, 0x3b, 0x71, 0x72, 0x4d,
|
||||
0x73, 0x73, 0x48, 0x75, 0x73, 0x43, 0x76, 0x79,
|
||||
0x41, 0x77, 0x76, 0x5c, 0x7a, 0x78, 0x48, 0x79,
|
||||
0x78, 0x4d, 0x7c, 0x7c, 0x38, 0x7f, 0x7c, 0x45,
|
||||
0x7d, 0x7c, 0x5a, 0x7d, 0x7f, 0x40, 0x80, 0x82,
|
||||
0x28, 0x7b, 0x7c, 0x7a, 0x82, 0x80, 0x4f, 0x81,
|
||||
0x81, 0x55, 0x80, 0x80, 0x72, 0x81, 0x84, 0x4b,
|
||||
0x86, 0x87, 0x38, 0x86, 0x87, 0x48, 0x85, 0x84,
|
||||
0x6a, 0x89, 0x87, 0x55, 0x88, 0x87, 0x5b, 0x89,
|
||||
0x8a, 0x4b, 0x8d, 0x8d, 0x47, 0x90, 0x91, 0x3e,
|
||||
0x91, 0x92, 0x46, 0x92, 0x92, 0x4c, 0x93, 0x94,
|
||||
0x54, 0x93, 0x93, 0x60, 0x92, 0x94, 0x5b, 0x97,
|
||||
0x98, 0x3e, 0x98, 0x9a, 0x46, 0x9b, 0x99, 0x4d,
|
||||
0x98, 0x9c, 0x4e, 0x99, 0x9b, 0x61, 0x9b, 0x9c,
|
||||
0x5c, 0x9b, 0x9b, 0x71, 0x9f, 0x9e, 0x58, 0xa3,
|
||||
0xa3, 0x41, 0xa1, 0xa4, 0x50, 0xa3, 0xa4, 0x63,
|
||||
0xa5, 0xa6, 0x4b, 0xa2, 0xa6, 0x71, 0xaa, 0xad,
|
||||
0x3b, 0xa8, 0xa9, 0x70, 0xae, 0xac, 0x43, 0xa8,
|
||||
0xa7, 0x8c, 0xae, 0xac, 0x65, 0xaf, 0xb1, 0x37,
|
||||
0xac, 0xac, 0x80, 0xae, 0xae, 0x6d, 0xae, 0xb2,
|
||||
0x47, 0xac, 0xb0, 0x61, 0xb2, 0xb1, 0x4e, 0xaf,
|
||||
0xb1, 0x5c, 0xb5, 0xb6, 0x5a, 0xae, 0xb0, 0xad,
|
||||
0xb5, 0xb9, 0x46, 0xb8, 0xb7, 0x54, 0xba, 0xbb,
|
||||
0x39, 0xb9, 0xba, 0x4f, 0xb4, 0xb9, 0x70, 0xb8,
|
||||
0xba, 0x64, 0xb8, 0xba, 0x6b, 0xc0, 0xbd, 0x54,
|
||||
0xbc, 0xc0, 0x54, 0xc0, 0xc1, 0x47, 0xbe, 0xbf,
|
||||
0x62, 0xc0, 0xc2, 0x6b, 0xbe, 0xbf, 0x96, 0xc5,
|
||||
0xc4, 0x60, 0xc1, 0xc4, 0x76, 0xc3, 0xc3, 0x80,
|
||||
0xc7, 0xc9, 0x56, 0xc7, 0xca, 0x5e, 0xcc, 0xcc,
|
||||
0x41, 0xcc, 0xcc, 0x4d, 0xc9, 0xca, 0x74, 0xcd,
|
||||
0xd1, 0x3d, 0xcf, 0xcf, 0x4d, 0xcf, 0xd2, 0x34,
|
||||
0xcb, 0xcd, 0x7e, 0xd0, 0xd1, 0x57, 0xcf, 0xd1,
|
||||
0x5d, 0xd3, 0xd7, 0x43, 0xd1, 0xd4, 0x67, 0xd2,
|
||||
0xd7, 0x4b, 0xd5, 0xd8, 0x3b, 0xd6, 0xd7, 0x55,
|
||||
0xd9, 0xd7, 0x4d, 0xd7, 0xd5, 0x70, 0xd6, 0xd6,
|
||||
0x78, 0xd7, 0xd8, 0x65, 0xd5, 0xd6, 0x7f, 0xd9,
|
||||
0xdc, 0x3f, 0xd8, 0xdc, 0x48, 0xd6, 0xd9, 0x6c,
|
||||
0xd4, 0xd9, 0x72, 0xd8, 0xd5, 0x9f, 0xda, 0xdb,
|
||||
0x60, 0xd8, 0xd7, 0x94, 0xdc, 0xdc, 0x61, 0xda,
|
||||
0xdf, 0x5b, 0xd8, 0xdb, 0x89, 0xdd, 0xe0, 0x4c,
|
||||
0xe0, 0xe1, 0x3b, 0xe1, 0xdf, 0x5d, 0xdd, 0xe1,
|
||||
0x56, 0xe0, 0xe2, 0x46, 0xdc, 0xdd, 0x85, 0xd8,
|
||||
0xdc, 0xa4, 0xde, 0xe0, 0x6b, 0xdf, 0xde, 0x7f,
|
||||
0xdd, 0xe0, 0x72, 0xe3, 0xe1, 0x57, 0xe4, 0xe5,
|
||||
0x3f, 0xe2, 0xe2, 0x66, 0xdf, 0xde, 0x97, 0xe4,
|
||||
0xe6, 0x4a, 0xe4, 0xe7, 0x53, 0xe4, 0xe5, 0x71,
|
||||
0xe7, 0xe6, 0x63, 0xe6, 0xe6, 0x6a, 0xea, 0xea,
|
||||
0x3b, 0xe3, 0xe8, 0x64, 0xe5, 0xe9, 0x5d, 0xe2,
|
||||
0xe5, 0x92, 0xeb, 0xeb, 0x47, 0xe5, 0xe8, 0x7a,
|
||||
0xe4, 0xe8, 0x81, 0xeb, 0xec, 0x50, 0xe9, 0xe7,
|
||||
0x88, 0xe7, 0xe7, 0x8f, 0xe9, 0xec, 0x58, 0xea,
|
||||
0xe8, 0x82, 0xed, 0xeb, 0x68, 0xeb, 0xef, 0x63,
|
||||
0xed, 0xed, 0x71, 0xf0, 0xf0, 0x4b, 0xee, 0xf0,
|
||||
0x54, 0xf2, 0xf1, 0x43, 0xee, 0xee, 0x79, 0xee,
|
||||
0xf1, 0x5d, 0xeb, 0xf1, 0x6c, 0xf5, 0xf3, 0x3b,
|
||||
0xec, 0xef, 0x80, 0xef, 0xf5, 0x46, 0xf1, 0xf6,
|
||||
0x3c, 0xf5, 0xf4, 0x47, 0xed, 0xf0, 0x88, 0xf0,
|
||||
0xef, 0x8f, 0xee, 0xef, 0x97, 0xf5, 0xf5, 0x51,
|
||||
0xf3, 0xf2, 0x76, 0xf1, 0xf5, 0x68, 0xf4, 0xf6,
|
||||
0x5a, 0xf5, 0xf7, 0x63, 0xf7, 0xf5, 0x71, 0xf4,
|
||||
0xf7, 0x6b, 0xf2, 0xf7, 0x71, 0xf7, 0xf6, 0x7a,
|
||||
0xf5, 0xf6, 0x80, 0xf3, 0xf7, 0x8f, 0xf5, 0xf4,
|
||||
0xaf, 0xf6, 0xf8, 0x89, 0xf9, 0xf7, 0x97, 0xf9,
|
||||
0xf9, 0x9f, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7,
|
||||
0xf8, 0xf8, 0xf8, 0xf9, 0xf9, 0xf9, 0xfa, 0xfa,
|
||||
0xfa, 0xfb, 0xfb, 0xfb, 0xfc, 0xfc, 0xfc, 0xfd,
|
||||
0xfd, 0xfd, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
|
300
examples/noscreen-cursor/yellow_crab_256_pixels.h
Normal file
|
@ -0,0 +1,300 @@
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41,
|
||||
0x31, 0x41, 0x2e, 0x29, 0x21, 0x0d, 0x0f, 0x0f,
|
||||
0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1d, 0x2a, 0x47, 0x4c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x38, 0x68,
|
||||
0x9b, 0xc6, 0xea, 0xea, 0xee, 0xc7, 0x83, 0x55,
|
||||
0x2d, 0x15, 0x0f, 0x0f, 0x0a, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2e, 0x81, 0x71, 0x4f, 0x07, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3c, 0x67, 0xce, 0xe1,
|
||||
0xe1, 0xe3, 0xe1, 0xe3, 0xe7, 0xe7, 0xe7, 0xea,
|
||||
0xed, 0xd8, 0x8d, 0x5d, 0x25, 0x15, 0x0f, 0x00,
|
||||
0x00, 0x34, 0x5d, 0xf3, 0xf3, 0x64, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x44, 0xad, 0xe2, 0xe2, 0xe2,
|
||||
0xe2, 0xe2, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe3,
|
||||
0xe7, 0xe7, 0xea, 0xe9, 0xd8, 0x97, 0x49, 0x14,
|
||||
0x1c, 0x2b, 0x8e, 0xf3, 0x9c, 0x54, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x79, 0x93, 0x4c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x4b, 0xae, 0xe1, 0xe2, 0xe2, 0xdf,
|
||||
0xdf, 0xe3, 0xe7, 0xe7, 0xe3, 0xe1, 0xe2, 0xe2,
|
||||
0xe1, 0xe3, 0xd9, 0xce, 0xd1, 0xc6, 0xcb, 0xb3,
|
||||
0x62, 0x17, 0x54, 0xd0, 0x7e, 0x06, 0x00, 0x38,
|
||||
0x83, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x6b, 0x7e, 0xee, 0x76, 0x33, 0x05,
|
||||
0x22, 0x09, 0x98, 0xe7, 0xe1, 0xe3, 0xe1, 0xe1,
|
||||
0xe7, 0xea, 0xed, 0xeb, 0xea, 0xe3, 0xe1, 0xe1,
|
||||
0xe1, 0xe2, 0xdb, 0xdb, 0xce, 0xd1, 0xc5, 0xb7,
|
||||
0xc1, 0xbe, 0x65, 0x20, 0x54, 0x00, 0x42, 0xaf,
|
||||
0xe8, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x50, 0x38, 0x85, 0xed, 0xc3, 0x95,
|
||||
0x67, 0x08, 0xea, 0xe7, 0xe7, 0xeb, 0xed, 0xed,
|
||||
0xed, 0xed, 0xee, 0xef, 0xed, 0xeb, 0xea, 0xea,
|
||||
0xe7, 0xe1, 0xe1, 0xe1, 0xe3, 0xdb, 0xce, 0xc5,
|
||||
0xad, 0xa6, 0xb9, 0x89, 0x00, 0x06, 0x92, 0xd8,
|
||||
0xbe, 0x5f, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x05, 0x48, 0x85, 0xd6,
|
||||
0x1a, 0x9d, 0xe7, 0xe7, 0xeb, 0xf3, 0xf1, 0xf0,
|
||||
0xef, 0xef, 0xf0, 0xf3, 0xed, 0xe7, 0xe7, 0xea,
|
||||
0xea, 0xe7, 0xe7, 0xe1, 0xe2, 0xe1, 0xdb, 0xce,
|
||||
0xad, 0x9f, 0x9f, 0x9a, 0x9a, 0x43, 0x59, 0x86,
|
||||
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x86, 0x59,
|
||||
0x5a, 0xe1, 0xea, 0xeb, 0xef, 0xf4, 0xf4, 0xef,
|
||||
0xed, 0xee, 0xee, 0xf0, 0xee, 0xe7, 0xe7, 0xe3,
|
||||
0xe7, 0xe7, 0xe7, 0xea, 0xe7, 0xe1, 0xe3, 0xd9,
|
||||
0xc2, 0xad, 0x9f, 0x9f, 0xae, 0xc6, 0x36, 0x00,
|
||||
0x00, 0x00, 0x07, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x4f, 0x36, 0x00, 0x00, 0x22, 0x7c, 0x18,
|
||||
0xd1, 0xea, 0xed, 0xef, 0xf1, 0xf5, 0xf0, 0xed,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xe7, 0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xea, 0xd9,
|
||||
0xce, 0xc2, 0xa6, 0x9f, 0x9d, 0xb7, 0xc6, 0x00,
|
||||
0x0c, 0x64, 0x7b, 0x41, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x5c, 0x89, 0x76, 0x78, 0x84, 0x8f, 0x26,
|
||||
0xeb, 0xee, 0xed, 0xef, 0xf1, 0xf3, 0xed, 0xe7,
|
||||
0xe7, 0xea, 0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0xa2, 0xeb, 0x8f, 0xee, 0xeb,
|
||||
0xdb, 0xca, 0xb8, 0x9f, 0x9a, 0xa8, 0xd1, 0x82,
|
||||
0x16, 0xe5, 0xd3, 0x47, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x5c, 0xeb, 0xeb, 0xeb, 0xeb, 0x6e, 0x60,
|
||||
0xeb, 0xed, 0xed, 0xec, 0xf0, 0xee, 0xea, 0xce,
|
||||
0xe7, 0xe7, 0xea, 0xea, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x99, 0x84, 0x76, 0xed, 0xed,
|
||||
0xe7, 0xe1, 0xce, 0xad, 0x9a, 0x9a, 0xb7, 0xdd,
|
||||
0x00, 0xa9, 0xb0, 0x71, 0x05, 0x05, 0x00, 0x00,
|
||||
0x00, 0x40, 0x54, 0x44, 0x46, 0x48, 0x10, 0x88,
|
||||
0xea, 0xeb, 0xeb, 0xed, 0xed, 0xeb, 0x88, 0x4e,
|
||||
0x82, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0xd7, 0x37, 0x8f, 0xeb, 0xec,
|
||||
0xea, 0xe3, 0xdb, 0xc5, 0xa3, 0x9a, 0x9d, 0xc5,
|
||||
0x39, 0x67, 0x78, 0x4b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x2f, 0x69, 0x6e, 0x70, 0x6f, 0x00, 0x98,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xd4, 0x38, 0x7c,
|
||||
0x3c, 0x82, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x90, 0x37, 0x61, 0xc8, 0xc9,
|
||||
0xeb, 0xe7, 0xe1, 0xda, 0xc2, 0x9d, 0x9d, 0xad,
|
||||
0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x48, 0x6b, 0x71, 0x00, 0xdc,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x84, 0x2d, 0xa3,
|
||||
0x91, 0x24, 0x88, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x61, 0x69, 0x78, 0x66, 0xc3,
|
||||
0xdd, 0xe3, 0xe3, 0xe7, 0xce, 0xae, 0x9d, 0xa3,
|
||||
0x7f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1b, 0x3e, 0x46, 0x6a, 0xa4, 0x05, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x50, 0x2d, 0xe3,
|
||||
0xe3, 0x75, 0x24, 0xb7, 0xe3, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xcb, 0x48, 0x8f, 0xdd, 0x66, 0x69,
|
||||
0xd7, 0xe3, 0xdb, 0xd9, 0xd1, 0xbb, 0xa5, 0xa3,
|
||||
0xa5, 0x06, 0xdc, 0xf0, 0x9c, 0x28, 0x00, 0x00,
|
||||
0x00, 0x72, 0xbe, 0xa4, 0x99, 0xd6, 0x05, 0xe7,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x42, 0x44, 0xe3,
|
||||
0xe3, 0xdb, 0x59, 0x52, 0xe3, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0x90, 0x57, 0xd7, 0xeb, 0xb9, 0x6f,
|
||||
0x6f, 0xce, 0xd9, 0xda, 0xd4, 0xb7, 0xa8, 0xae,
|
||||
0xc5, 0x00, 0xe0, 0xe0, 0x7e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x6c, 0xec, 0xed, 0xed, 0xee, 0x05, 0xea,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x35, 0x6d, 0xe3,
|
||||
0xe3, 0xe1, 0xce, 0x4b, 0x91, 0xe7, 0xe7, 0xea,
|
||||
0xea, 0xeb, 0x8f, 0x86, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xb9, 0xd1, 0xd9, 0xd1, 0xc8, 0xae, 0xa5, 0xae,
|
||||
0xc5, 0x00, 0x8e, 0xb0, 0x63, 0x00, 0x00, 0x00,
|
||||
0x00, 0x55, 0x8d, 0x65, 0x48, 0x3c, 0x00, 0x98,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x44, 0xce, 0xe3,
|
||||
0xe3, 0xe3, 0xe3, 0xce, 0xce, 0xe7, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xc8, 0xcc, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xe7, 0xe7, 0xd4, 0xc7, 0xa8, 0x9e, 0xa3,
|
||||
0xb7, 0x08, 0x09, 0x1f, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x12, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xbe,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xd4, 0xe7, 0xe3,
|
||||
0xe3, 0xe3, 0xe7, 0xe3, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xea, 0xd7, 0xd0, 0xa1, 0x9e, 0xa7,
|
||||
0xba, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xea, 0xe7, 0xe7,
|
||||
0xe3, 0xe3, 0xe7, 0xe7, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xeb, 0xde, 0xd3, 0xab, 0xa1, 0xb2,
|
||||
0xcf, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x07, 0x53, 0x95, 0x10, 0xbb,
|
||||
0xe3, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xe7, 0xe7,
|
||||
0xe3, 0xe3, 0xe7, 0xe7, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xec, 0xd3, 0xaf, 0xa2, 0xb4,
|
||||
0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x5e, 0x6b, 0x86, 0xc8, 0xeb, 0x4d, 0x7f,
|
||||
0xe1, 0xe7, 0xeb, 0xeb, 0xeb, 0xeb, 0xe7, 0xe7,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0xc1, 0x84, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xe8, 0xd3, 0xa9, 0xa4, 0xc0,
|
||||
0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x12, 0x8e, 0xee, 0xed, 0xed, 0xe9, 0x75, 0x5a,
|
||||
0xe1, 0xea, 0xed, 0xed, 0xed, 0xeb, 0xe7, 0xe7,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0x76, 0x69, 0xed, 0xed, 0xeb, 0xeb, 0xeb, 0xed,
|
||||
0xeb, 0xeb, 0xeb, 0xe8, 0xd3, 0xac, 0xaa, 0xd0,
|
||||
0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3e, 0xc9, 0xe9, 0xd7, 0xd7, 0x98, 0x08,
|
||||
0xe3, 0xeb, 0xed, 0xed, 0xed, 0xed, 0xea, 0xea,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0x4b, 0x57, 0xed, 0xed, 0xeb, 0xeb, 0xeb, 0xed,
|
||||
0xeb, 0xeb, 0xed, 0xdc, 0xcd, 0xaa, 0xa4, 0xd0,
|
||||
0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x42, 0x65, 0x57, 0x46, 0x3f, 0x00,
|
||||
0xba, 0xed, 0xed, 0xeb, 0xeb, 0xed, 0xeb, 0xea,
|
||||
0xe7, 0xea, 0xe7, 0xe7, 0x9b, 0x59, 0xda, 0xd4,
|
||||
0x25, 0x70, 0xed, 0xed, 0xed, 0xeb, 0xeb, 0xed,
|
||||
0xed, 0xed, 0xeb, 0xd7, 0xbe, 0x98, 0x52, 0x44,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x59, 0xed, 0xe7, 0xe3, 0xe7, 0xea, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xe7, 0xe7, 0xe7, 0x48, 0x59, 0x84,
|
||||
0x1d, 0xcc, 0xed, 0xed, 0xed, 0xed, 0xe9, 0xee,
|
||||
0xee, 0xdd, 0xda, 0xd4, 0xae, 0x9d, 0x7a, 0x1b,
|
||||
0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xa1, 0xe3, 0xe3, 0xe7, 0xe7, 0xeb, 0xee,
|
||||
0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xcc, 0x2d, 0x2d,
|
||||
0x66, 0xeb, 0xed, 0xed, 0xe9, 0xd7, 0xcc, 0xe8,
|
||||
0xe8, 0xd4, 0xd1, 0xc6, 0xae, 0xa6, 0xa6, 0x4d,
|
||||
0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x10, 0xd9, 0xbb, 0xb7, 0xd9, 0xed, 0xef,
|
||||
0xec, 0xed, 0xeb, 0xea, 0xea, 0xea, 0x8b, 0x27,
|
||||
0xea, 0xeb, 0xed, 0xee, 0xde, 0xc8, 0xb9, 0xd8,
|
||||
0xdc, 0xcc, 0xc6, 0xba, 0xa5, 0xad, 0xca, 0x9d,
|
||||
0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3d, 0x3f, 0x91, 0xc5, 0xd8, 0xdc,
|
||||
0xf0, 0xef, 0xee, 0xeb, 0xea, 0xeb, 0xea, 0xa1,
|
||||
0xeb, 0xed, 0xee, 0xec, 0xd6, 0xc3, 0xc3, 0xdc,
|
||||
0xe0, 0xc7, 0xc1, 0xa7, 0x4e, 0x4d, 0x9a, 0xca,
|
||||
0xad, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x66, 0xd9, 0xa5, 0x99, 0xc0,
|
||||
0xc9, 0xdc, 0xf0, 0xec, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xed, 0xee, 0xd8, 0xc3, 0xbe, 0xc3, 0xcf,
|
||||
0xcf, 0xd0, 0xcf, 0xcf, 0x10, 0x00, 0x52, 0xc5,
|
||||
0xe1, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x13, 0xc6, 0xc5, 0x51, 0xa4, 0xab,
|
||||
0xab, 0xb2, 0xc7, 0xe0, 0xe8, 0xe9, 0xeb, 0xeb,
|
||||
0xeb, 0xee, 0xe8, 0xc7, 0xc0, 0xc0, 0xcf, 0xd0,
|
||||
0xd0, 0xd0, 0xac, 0x13, 0x00, 0x00, 0x0c, 0x88,
|
||||
0xdb, 0xdb, 0x56, 0x33, 0x41, 0x30, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x76, 0xe9, 0x52, 0x3e, 0xc0, 0xc7,
|
||||
0xaf, 0xa4, 0xab, 0xc0, 0xd5, 0xdc, 0xde, 0xed,
|
||||
0xee, 0xe8, 0xdc, 0xd0, 0xbf, 0xd2, 0xd5, 0xe4,
|
||||
0xe4, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
|
||||
0x88, 0xd9, 0xba, 0x54, 0xd5, 0x80, 0x05, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x51, 0x99, 0xee, 0x8d, 0x00, 0x00, 0x00, 0x86,
|
||||
0xbe, 0xa4, 0xa4, 0xb0, 0xbf, 0xd0, 0xdc, 0xe8,
|
||||
0xef, 0xf0, 0xe4, 0xd2, 0xd2, 0xe6, 0xe6, 0xbc,
|
||||
0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x51, 0xa1, 0xdd, 0xa1, 0xbe, 0xe0, 0x5e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x59,
|
||||
0x84, 0xeb, 0xd6, 0x33, 0x1e, 0x00, 0x00, 0x00,
|
||||
0x4e, 0x92, 0xaf, 0xa9, 0xaa, 0xd2, 0xe4, 0xf3,
|
||||
0xf3, 0xe4, 0xe5, 0xd2, 0xd3, 0x81, 0x38, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b,
|
||||
0x77, 0x89, 0xda, 0xd7, 0xd6, 0xd8, 0x73, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x4a, 0x7b, 0x5c, 0x35,
|
||||
0x6e, 0xe7, 0x59, 0x2f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x7e, 0xcd, 0xe5, 0xf1, 0xf1,
|
||||
0xf1, 0xd2, 0x96, 0x6c, 0x0c, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58,
|
||||
0xf4, 0x8e, 0xba, 0xcb, 0xd6, 0xc9, 0x81, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x96, 0xf3, 0xd8, 0x75,
|
||||
0xdb, 0x9a, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0c, 0x55, 0x71, 0x55,
|
||||
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0,
|
||||
0xf3, 0xe4, 0xa7, 0xab, 0xc3, 0xc7, 0xa0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xaa, 0xf3, 0xd6, 0xc5,
|
||||
0xe2, 0x8a, 0x56, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf1,
|
||||
0xf3, 0xe0, 0xa1, 0x95, 0xb0, 0xd0, 0xbc, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe9, 0xe7,
|
||||
0xe2, 0xbb, 0xb7, 0x33, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xf3, 0xe0, 0x78, 0x76, 0x9c, 0xbf, 0xb6, 0x00,
|
||||
0x00, 0x00, 0x00, 0x38, 0xf0, 0xe8, 0xcb, 0xcc,
|
||||
0xdb, 0xe3, 0xea, 0x65, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xf3, 0x72, 0x5f, 0x6f, 0x93, 0xbf, 0xb6, 0x00,
|
||||
0x00, 0x00, 0x0c, 0x50, 0xf0, 0xdc, 0xb2, 0xaf,
|
||||
0xbb, 0xd9, 0xeb, 0xa2, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xac, 0x37, 0x7e, 0x4b, 0x8e, 0xbc, 0xa0, 0x05,
|
||||
0x00, 0x00, 0x0c, 0x4f, 0xf0, 0xdc, 0xbe, 0x9c,
|
||||
0xa5, 0xd4, 0xed, 0xb2, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xf1,
|
||||
0x4a, 0x72, 0x81, 0x32, 0x8c, 0xbc, 0x97, 0x05,
|
||||
0x00, 0x00, 0x07, 0x71, 0xcf, 0xef, 0x95, 0x81,
|
||||
0x98, 0xb5, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x7b,
|
||||
0x0e, 0xb3, 0x64, 0x3f, 0x8e, 0xbc, 0x73, 0x00,
|
||||
0x00, 0x00, 0x00, 0x6c, 0x7e, 0xf0, 0x93, 0x40,
|
||||
0x95, 0xa1, 0xd8, 0x92, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x30, 0x2f, 0x23, 0x5c, 0x96, 0x79, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x4c, 0x4c, 0xe5, 0xb6, 0x00,
|
||||
0x61, 0x95, 0xbe, 0x74, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a,
|
||||
0x00, 0x00, 0x49, 0x80, 0x94, 0x0e, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0xc4, 0x19,
|
||||
0x23, 0x6a, 0xaa, 0x5d, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3a, 0x5b, 0x87, 0x45, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0xf2, 0x0e,
|
||||
0x00, 0x00, 0xa0, 0x2f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x5b, 0x3a, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xbd, 0x00,
|
||||
0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00,
|
||||
0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
401
examples/noscreen-cursor/yellow_crab_rgba.h
Normal file
|
@ -0,0 +1,401 @@
|
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x05050504, 0x3e393935, 0xab626252, 0xd44b4b3e, 0xff5f5f4c,
|
||||
0xff4c4c43, 0xff43433b, 0xff373734, 0xc01a1a1a, 0x921e1e1e, 0x5e1d1d1d,
|
||||
0x24141414, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5f323232, 0xb343433f,
|
||||
0xbf68684e, 0xb26e6e50, 0x2f222219, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1c18180b, 0x9d545430, 0xfd59593b, 0xff8e8f41, 0xffcbcc4f, 0xffe6e75a,
|
||||
0xfff2f45a, 0xfff3f55e, 0xfff3f46f, 0xffe4e574, 0xffaeaf60, 0xff777850,
|
||||
0xfe4a4a38, 0xe12a2a29, 0xa11e1e1e, 0x711f1f1f, 0x22111111, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xde50504a, 0xffb0b16f,
|
||||
0xff9a9b64, 0xff757551, 0xfe3d3d38, 0x0a080807, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2e14140c,
|
||||
0xec5b5b3b, 0xff92923e, 0xffeaec45, 0xfff3f549, 0xfff3f548, 0xfff3f54c,
|
||||
0xfff3f54a, 0xfff3f54b, 0xfff4f550, 0xfff4f655, 0xfff4f653, 0xfff4f65b,
|
||||
0xfff5f669, 0xffebed72, 0xffb7b864, 0xff818254, 0xfd3f3f35, 0xcf2b2b2b,
|
||||
0x631e1e1e, 0x0e0a0a0a, 0x00000000, 0x6f54543f, 0xff808056, 0xfff7f889,
|
||||
0xfff5f68b, 0xf1868759, 0x361b1b13, 0x0e0d0d0a, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a25251e, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4e33331b, 0xf065653b,
|
||||
0xffdcdd45, 0xfff3f542, 0xfff3f541, 0xfff3f542, 0xfff3f541, 0xfff3f544,
|
||||
0xfff3f545, 0xfff3f545, 0xfff3f546, 0xfff3f547, 0xfff3f549, 0xfff3f54c,
|
||||
0xfff4f653, 0xfff4f552, 0xfff3f459, 0xfff1f366, 0xffeeef77, 0xffc6c782,
|
||||
0xff69695b, 0xe9292929, 0x922f2f2a, 0xa2474732, 0xffb8b86d, 0xfff7f888,
|
||||
0xffc9c973, 0xed787849, 0x00000000, 0x2c1b1b10, 0xcf33332a, 0x3910100c,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x2a28291b, 0xe5a5a56f, 0xfdc4c571, 0xe66a6a4a,
|
||||
0x5b383820, 0x0a090906, 0x01000000, 0x2a1c1c0f, 0xef707040, 0xffddde4b,
|
||||
0xfff3f546, 0xfff3f542, 0xfff3f543, 0xfff3f441, 0xfff3f443, 0xfff3f54c,
|
||||
0xfff3f54f, 0xfff3f550, 0xfff3f54d, 0xfff3f547, 0xfff3f543, 0xfff3f542,
|
||||
0xfff3f547, 0xfff3f44c, 0xfff0f24d, 0xffeced4d, 0xffe9eb54, 0xffe8e958,
|
||||
0xffe7e967, 0xffd7d896, 0xff84846a, 0xff2d2d1f, 0xff777746, 0xffe9ea82,
|
||||
0xffa8a863, 0x883f3f24, 0x2e19190f, 0xeb5d5d41, 0xffafb061, 0xea51513d,
|
||||
0x0d070704, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xbc959562, 0xffaaaa61, 0xfff4f572, 0xffa5a556,
|
||||
0xfd54543d, 0xc23e3e2d, 0x6e4f4f22, 0xca3c3c25, 0xffc2c351, 0xfff4f550,
|
||||
0xfff3f549, 0xfff3f54b, 0xfff3f549, 0xfff3f548, 0xfff3f54f, 0xfff3f55b,
|
||||
0xfff4f66a, 0xfff4f668, 0xfff4f558, 0xfff3f54d, 0xfff3f547, 0xfff3f545,
|
||||
0xfff3f545, 0xfff3f544, 0xfff0f246, 0xffeef049, 0xffecee4a, 0xffeaeb4e,
|
||||
0xffe6e74f, 0xffe2e34f, 0xffe1e25d, 0xffdedf70, 0xff89894e, 0xff3a3a24,
|
||||
0xff7a7a47, 0x301d1d0d, 0xe5666641, 0xffd5d66d, 0xfff1f378, 0xff9b9b57,
|
||||
0x992f2f27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x03020202, 0xb473734b, 0xe85a5a3e, 0xffb0b05a, 0xfff4f56c,
|
||||
0xffe0e167, 0xffc1c25e, 0xff909041, 0xff40401b, 0xfff2f457, 0xfff4f553,
|
||||
0xfff3f552, 0xfff4f560, 0xfff4f66b, 0xfff4f56e, 0xfff4f569, 0xfff4f66b,
|
||||
0xfff5f778, 0xfff6f77f, 0xfff5f76e, 0xfff5f662, 0xfff4f660, 0xfff4f65d,
|
||||
0xfff4f654, 0xfff3f54a, 0xfff2f445, 0xfff2f447, 0xfff1f349, 0xffeff14a,
|
||||
0xffeaec4c, 0xffe2e44a, 0xffd9db44, 0xffd6d73f, 0xffdedf5f, 0xffb7b853,
|
||||
0xff232316, 0xe3404026, 0xffc1c165, 0xffeaec74, 0xffe0e170, 0xf383834f,
|
||||
0xf05c5c54, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x03020202, 0x100d0d08, 0x170f0f08, 0xa23e3e2b, 0xff6e6e46,
|
||||
0xffabac58, 0xffebec69, 0xff323219, 0xffd2d345, 0xfff4f652, 0xfff4f656,
|
||||
0xfff4f561, 0xfff6f787, 0xfff6f792, 0xfff6f786, 0xfff5f678, 0xfff5f77b,
|
||||
0xfff6f887, 0xfff7f88d, 0xfff5f770, 0xfff4f557, 0xfff3f552, 0xfff5f660,
|
||||
0xfff5f65f, 0xfff4f657, 0xfff4f553, 0xfff3f545, 0xfff3f542, 0xfff2f446,
|
||||
0xfff0f24b, 0xffe8ea4b, 0xffdcde45, 0xffd3d439, 0xffd2d33b, 0xffcecf45,
|
||||
0xffcccd48, 0xff68692e, 0xff7c7d41, 0xffb8b95f, 0xe3696940, 0x3e1f1f13,
|
||||
0x251f1f17, 0x21161616, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x07060604, 0x09080805, 0x3e323218, 0xdd9b9b49,
|
||||
0xffb8b85a, 0xff7f7f3f, 0xff858631, 0xfff3f54a, 0xfff4f65b, 0xfff4f665,
|
||||
0xfff6f77f, 0xfff8f99c, 0xfff7f896, 0xfff5f77e, 0xfff5f66d, 0xfff5f771,
|
||||
0xfff5f775, 0xfff7f884, 0xfff6f773, 0xfff4f657, 0xfff4f550, 0xfff3f54b,
|
||||
0xfff4f551, 0xfff4f656, 0xfff4f653, 0xfff4f65a, 0xfff4f654, 0xfff3f546,
|
||||
0xfff2f34a, 0xffedef4c, 0xffe4e646, 0xffd9da3e, 0xffd1d338, 0xffd0d139,
|
||||
0xffdbdd4d, 0xffe6e757, 0xff575727, 0xd5393925, 0x1a0f0f07, 0x49171712,
|
||||
0xdb424236, 0xe54e4e4b, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x261a1a17, 0xb86f6f48, 0x8757572c, 0x37212110, 0x271b1b0c, 0x684a4a1d,
|
||||
0xfdb0b049, 0xff2b2b17, 0xffeced56, 0xfff4f65f, 0xfff5f66a, 0xfff5f77a,
|
||||
0xfff7f895, 0xfff8f99d, 0xfff6f887, 0xfff4f669, 0xfff4f55d, 0xfff5f661,
|
||||
0xfff5f768, 0xfff5f664, 0xfff4f65d, 0xfff4f656, 0xfff4f656, 0xfff4f656,
|
||||
0xfff4f658, 0xfff5f65f, 0xfff5f762, 0xfff5f662, 0xfff5f662, 0xfff5f763,
|
||||
0xfff3f55e, 0xffeff14f, 0xffeaeb47, 0xffe3e441, 0xffd7d83a, 0xffccce37,
|
||||
0xffcfd03f, 0xffe1e353, 0xffe2e453, 0xf92b2b15, 0xd842422e, 0xff87875d,
|
||||
0xffa6a66f, 0xcb63634f, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02010100, 0xff81814e, 0xffb8b856, 0xffa4a44f, 0xffa6a64f, 0xffafaf51,
|
||||
0xffb8b953, 0xff43431d, 0xfff5f666, 0xfff5f771, 0xfff5f66a, 0xfff5f77a,
|
||||
0xfff7f892, 0xfff6f88e, 0xfff4f66d, 0xfff3f557, 0xfff4f553, 0xfff4f65a,
|
||||
0xfff5f664, 0xfff5f661, 0xfff4f659, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f65a, 0xfff5f663, 0xfff5f765, 0xffcccd5d, 0xfff4f566, 0xffbfbf58,
|
||||
0xfff6f772, 0xfff3f560, 0xffeff147, 0xffeaeb43, 0xffdfe13e, 0xffcfd138,
|
||||
0xffc8c93e, 0xffd5d64f, 0xffeaeb50, 0xffb1b247, 0xff48482b, 0xffeff093,
|
||||
0xffe9ea91, 0xff696951, 0x1b111111, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xff7e7e4b, 0xfff5f766, 0xfff5f662, 0xfff5f662, 0xfff5f663,
|
||||
0xff979844, 0xff818234, 0xfff5f662, 0xfff5f76d, 0xfff5f66a, 0xfff5f676,
|
||||
0xfff6f782, 0xfff5f673, 0xfff2f457, 0xffe9ea4c, 0xfff2f44f, 0xfff4f658,
|
||||
0xfff5f660, 0xfff5f65e, 0xfff4f659, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f65a, 0xfff5f662, 0xfff5f766, 0xffc7c85b, 0xffb3b355, 0xffa3a350,
|
||||
0xfff5f76b, 0xfff6f76f, 0xfff3f552, 0xffeff143, 0xffe8ea45, 0xffdadc3e,
|
||||
0xffcbcc42, 0xffcacc44, 0xffdedf4d, 0xffeff15c, 0xff35351f, 0xffd4d574,
|
||||
0xffd9da74, 0xff979861, 0x913b3b3a, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0xff606045, 0xff7b7b48, 0xff696a42, 0xff686842, 0xff6b6b43,
|
||||
0xff454525, 0xffb6b74a, 0xfff4f65d, 0xfff4f664, 0xfff4f666, 0xfff5f66a,
|
||||
0xfff5f66e, 0xfff4f661, 0xffb8b847, 0xff74743d, 0xffb0b146, 0xfff4f654,
|
||||
0xfff4f658, 0xfff4f658, 0xfff4f656, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f662, 0xfff5f766, 0xffedee65, 0xff59593f, 0xffbcbd56,
|
||||
0xfff4f668, 0xfff6f776, 0xfff4f65c, 0xfff3f54c, 0xffeff147, 0xffe7e94c,
|
||||
0xffd6d742, 0xffc9ca41, 0xffd1d344, 0xffe4e64d, 0xff5e5e24, 0xff919140,
|
||||
0xffa0a145, 0xc36b6b3a, 0x552a2a20, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x96545441, 0xa28f904b, 0xa29a9b48, 0xa29c9c4e, 0xb29a9b52,
|
||||
0xf8363625, 0xffc7c95b, 0xfff5f662, 0xfff4f663, 0xfff4f663, 0xfff4f663,
|
||||
0xfff5f668, 0xffeaec5c, 0xff59593b, 0xffabac43, 0xff5d5d3b, 0xffb0b146,
|
||||
0xfff4f653, 0xfff4f654, 0xfff4f552, 0xfff4f655, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f662, 0xfff5f766, 0xffbfc059, 0xff57573e, 0xff888849,
|
||||
0xffe5e561, 0xffe7e871, 0xfff5f663, 0xfff4f551, 0xfff3f54a, 0xffeff054,
|
||||
0xffe2e344, 0xffd0d142, 0xffcccd3e, 0xffdadb44, 0xff676726, 0xc12e2e18,
|
||||
0x51343416, 0x04030301, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x29222213, 0x9a6c6c44, 0xdb8f8f5f, 0xd89b9b64,
|
||||
0xe6272717, 0xffecee77, 0xfff5f663, 0xfff5f663, 0xfff4f663, 0xfff5f663,
|
||||
0xfff5f768, 0xffb0b050, 0xff494939, 0xffd7d848, 0xffc0c146, 0xff3c3c31,
|
||||
0xffb6b747, 0xfff4f551, 0xfff4f54f, 0xfff4f654, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f661, 0xfff5f766, 0xff86874a, 0xff93934c, 0xffa8a851,
|
||||
0xff8f8f4d, 0xffdfe06a, 0xfff1f362, 0xfff3f54e, 0xfff3f54c, 0xfff3f456,
|
||||
0xffe9eb49, 0xffd9da45, 0xffcfd042, 0xffd7d844, 0xffb3b43e, 0xed151512,
|
||||
0xdb3c3c30, 0xdb38382c, 0xdb313127, 0xd52c2c25, 0x00000000, 0x00000000,
|
||||
0x40262619, 0xcd4e4e3a, 0xf95d5d42, 0xff6d6d47, 0xff919150, 0xffd2d366,
|
||||
0xff404020, 0xfff5f662, 0xfff5f664, 0xfff5f665, 0xfff5f665, 0xfff5f665,
|
||||
0xfff5f767, 0xff707043, 0xff4b4b39, 0xfff1f34b, 0xfff3f54b, 0xffa1a241,
|
||||
0xff3d3d31, 0xffdedf4c, 0xfff3f54d, 0xfff4f655, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f661, 0xffe3e561, 0xff6c6c44, 0xffbebe57, 0xfff1f263,
|
||||
0xff8b8b4a, 0xff939350, 0xffeaec5f, 0xfff3f44c, 0xfff1f24b, 0xfff1f254,
|
||||
0xffecee53, 0xffe0e24b, 0xffd5d74b, 0xffd8d94c, 0xffd8d94d, 0xff3b3c22,
|
||||
0xfff0f180, 0xfff2f382, 0xffcaca75, 0x8f4e4e34, 0x02010101, 0x00000000,
|
||||
0x1e17170d, 0xff9b9c5b, 0xffdedf6c, 0xffd1d164, 0xffc7c861, 0xffeeef6d,
|
||||
0xff40401f, 0xfff4f658, 0xfff5f666, 0xfff5f666, 0xfff5f665, 0xfff5f666,
|
||||
0xfff5f767, 0xff616140, 0xff67673c, 0xfff3f54b, 0xfff3f54b, 0xfff1f24a,
|
||||
0xff7d7e3e, 0xff76763d, 0xfff2f44d, 0xfff4f656, 0xfff4f658, 0xfff4f658,
|
||||
0xfff4f659, 0xfff5f661, 0xffbebf58, 0xff7c7c48, 0xffeaec61, 0xfff5f664,
|
||||
0xffe1e25f, 0xff98984f, 0xff95954a, 0xffebec4c, 0xffeef04a, 0xffedee52,
|
||||
0xffe9eb5d, 0xffdfe14d, 0xffd9da52, 0xffdbdd4e, 0xffe4e64f, 0xff1a1a15,
|
||||
0xffebec80, 0xffeced82, 0xffabac68, 0x431c1c14, 0x00000000, 0x00000000,
|
||||
0x04030302, 0xff939359, 0xfff6f775, 0xfff5f66f, 0xfff4f56e, 0xfff4f570,
|
||||
0xff3e3f1f, 0xfff4f559, 0xfff5f668, 0xfff5f668, 0xfff5f667, 0xfff5f766,
|
||||
0xfff5f768, 0xff54543d, 0xff979842, 0xfff3f54c, 0xfff3f54b, 0xfff3f54a,
|
||||
0xffebed4d, 0xff6c6d3d, 0xffbebf46, 0xfff4f657, 0xfff4f658, 0xfff4f659,
|
||||
0xfff4f65a, 0xfff5f661, 0xffbebe58, 0xffb2b255, 0xfff5f764, 0xfff5f664,
|
||||
0xfff5f664, 0xfff5f765, 0xffdcdd59, 0xffebed50, 0xffeef04d, 0xffeaec53,
|
||||
0xffe6e765, 0xffd9da4c, 0xffd4d651, 0xffdadb49, 0xffe2e44d, 0xff363614,
|
||||
0xffb6b767, 0xffdadb76, 0xff878757, 0x612a2a21, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xeb76764f, 0xffbabb64, 0xff8c8c4d, 0xff6b6b3f, 0xff5e5e3c,
|
||||
0xff10100c, 0xffc9ca5c, 0xfff5f769, 0xfff5f768, 0xfff5f767, 0xfff5f767,
|
||||
0xfff5f768, 0xff6a6a42, 0xffeaec4e, 0xfff3f54d, 0xfff3f54b, 0xfff3f54b,
|
||||
0xfff4f54e, 0xffebed4d, 0xffe9eb4b, 0xfff4f658, 0xfff4f659, 0xfff4f659,
|
||||
0xfff4f65a, 0xfff5f661, 0xffe4e562, 0xffe8ea64, 0xfff5f765, 0xfff5f664,
|
||||
0xfff5f664, 0xfff5f767, 0xfff5f65e, 0xfff4f656, 0xfff1f352, 0xffedee5a,
|
||||
0xffe5e672, 0xffd4d550, 0xffcfd050, 0xffd6d84a, 0xffdfe14d, 0xff3d3d18,
|
||||
0x9c42422b, 0xaf4c4c32, 0xab3f3f32, 0x73383837, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x8b434335, 0xaf42423d, 0x712a2a2a, 0x411c1c1a, 0x3113130f,
|
||||
0xff1e1e1d, 0xffdfe16e, 0xfff5f769, 0xfff5f768, 0xfff5f767, 0xfff5f767,
|
||||
0xfff5f768, 0xffedee5e, 0xfff4f550, 0xfff3f54e, 0xfff3f54b, 0xfff3f54c,
|
||||
0xfff4f54f, 0xfff3f54e, 0xfff3f54d, 0xfff4f659, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65b, 0xfff5f662, 0xfff5f767, 0xfff5f768, 0xfff5f765, 0xfff5f764,
|
||||
0xfff5f765, 0xfff5f767, 0xfff5f65f, 0xfff4f65c, 0xfff4f55a, 0xffeef063,
|
||||
0xffe4e581, 0xffd3d458, 0xffcecf52, 0xffd7d857, 0xffe1e357, 0xff3d3d1a,
|
||||
0x2316160d, 0x03020202, 0x03020202, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05030303, 0x765b5b51,
|
||||
0xff2f2f25, 0xfff5f665, 0xfff5f763, 0xfff5f768, 0xfff5f768, 0xfff5f768,
|
||||
0xfff5f768, 0xfff5f660, 0xfff4f551, 0xfff4f54f, 0xfff3f54c, 0xfff3f54c,
|
||||
0xfff4f54f, 0xfff4f54f, 0xfff3f54e, 0xfff4f659, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65b, 0xfff5f662, 0xfff5f768, 0xfff5f768, 0xfff5f765, 0xfff5f764,
|
||||
0xfff5f665, 0xfff5f767, 0xfff5f660, 0xfff5f660, 0xfff4f661, 0xffeff16d,
|
||||
0xffe5e68c, 0xffd4d562, 0xffcfd056, 0xffd9db5e, 0xffe7e879, 0xff3b3b21,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x06030303, 0x48313130, 0x783f3f38, 0xe476765c, 0xffc3c35f,
|
||||
0xff454622, 0xffe1e248, 0xfff3f54c, 0xfff5f763, 0xfff5f768, 0xfff5f768,
|
||||
0xfff5f768, 0xfff5f661, 0xfff4f552, 0xfff4f551, 0xfff3f54d, 0xfff3f54e,
|
||||
0xfff4f54f, 0xfff4f54f, 0xfff3f54e, 0xfff4f65a, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65c, 0xfff5f763, 0xfff5f769, 0xfff5f769, 0xfff5f766, 0xfff5f765,
|
||||
0xfff5f765, 0xfff5f767, 0xfff5f661, 0xfff5f661, 0xfff5f664, 0xfff1f273,
|
||||
0xffe7e890, 0xffd5d66b, 0xffd1d25e, 0xffddde66, 0xffebec8a, 0xff24241c,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x6c3e3e3e, 0xf17f7f72, 0xff959560, 0xffb5b65b, 0xffe6e765, 0xfff5f768,
|
||||
0xff6f7034, 0xffadae39, 0xfff3f548, 0xfff4f658, 0xfff5f769, 0xfff5f769,
|
||||
0xfff5f769, 0xfff5f663, 0xfff4f655, 0xfff4f653, 0xfff3f54f, 0xfff4f550,
|
||||
0xfff4f550, 0xfff4f54f, 0xfff4f54f, 0xfff4f65c, 0xfff4f65b, 0xfff4f65b,
|
||||
0xffddde57, 0xffb2b354, 0xfff5f769, 0xfff5f769, 0xfff5f767, 0xfff5f766,
|
||||
0xfff5f766, 0xfff5f769, 0xfff5f663, 0xfff5f663, 0xfff5f667, 0xfff1f376,
|
||||
0xffe7e78f, 0xffd5d674, 0xffd1d268, 0xffe1e273, 0xfff0f19e, 0xfa242422,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x90464639, 0xffb8b868, 0xfff6f773, 0xfff5f76c, 0xfff4f568, 0xfff1f366,
|
||||
0xffa6a749, 0xff7d7e29, 0xfff3f548, 0xfff4f659, 0xfff5f76a, 0xfff5f76a,
|
||||
0xfff5f76b, 0xfff5f767, 0xfff4f658, 0xfff4f656, 0xfff4f551, 0xfff4f652,
|
||||
0xfff4f551, 0xfff4f550, 0xfff4f550, 0xfff4f65d, 0xfff4f65c, 0xfff4f65c,
|
||||
0xff9fa04b, 0xff91914d, 0xfff5f76a, 0xfff5f76a, 0xfff5f768, 0xfff5f767,
|
||||
0xfff5f766, 0xfff5f76a, 0xfff5f765, 0xfff5f765, 0xfff5f769, 0xfff1f279,
|
||||
0xffe5e690, 0xffd4d57e, 0xffd3d578, 0xffe4e684, 0xffd6d6a3, 0xbf090909,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x05040402, 0xec616142, 0xffe4e56c, 0xfff3f46b, 0xffeff167, 0xffeef065,
|
||||
0xffcacb58, 0xff43431b, 0xfff3f54b, 0xfff5f765, 0xfff5f76a, 0xfff5f76a,
|
||||
0xfff5f76c, 0xfff5f76c, 0xfff4f65d, 0xfff4f65a, 0xfff4f654, 0xfff4f656,
|
||||
0xfff4f652, 0xfff4f550, 0xfff3f450, 0xfff4f65d, 0xfff4f65c, 0xfff4f65d,
|
||||
0xff6e6f41, 0xff7c7c47, 0xfff5f76b, 0xfff5f76b, 0xfff5f769, 0xfff5f768,
|
||||
0xfff5f767, 0xfff5f76b, 0xfff5f769, 0xfff5f769, 0xfff5f66d, 0xfff0f17b,
|
||||
0xffe3e491, 0xffd3d477, 0xffd2d46c, 0xffe6e780, 0xffa7a78c, 0x9c191919,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x602c2c1c, 0xff626241, 0xff8c8c4f, 0xff7c7c48, 0xff676843,
|
||||
0xa8636335, 0xff383820, 0xffe2e35c, 0xfff5f76c, 0xfff5f76a, 0xfff5f764,
|
||||
0xfff5f766, 0xfff6f770, 0xfff5f663, 0xfff5f660, 0xfff4f658, 0xfff4f65a,
|
||||
0xfff4f654, 0xfff4f551, 0xffcccc4b, 0xff818145, 0xffeff15b, 0xffeaec5a,
|
||||
0xff3d3d36, 0xff999a4f, 0xfff5f76c, 0xfff5f76d, 0xfff5f76a, 0xfff5f769,
|
||||
0xfff5f768, 0xfff6f76d, 0xfff5f76d, 0xfff4f56a, 0xfff2f464, 0xffeced65,
|
||||
0xffdedf6a, 0xffcbcc5b, 0xff77773f, 0xff6a6a41, 0xff383825, 0x65262623,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x973b3b28, 0x64373720, 0x43262615, 0x06040402,
|
||||
0x0b0a0a07, 0x98373722, 0xff7f7f40, 0xfff6f76d, 0xfff4f657, 0xfff4f54e,
|
||||
0xfff4f551, 0xfff5f660, 0xfff5f769, 0xfff5f767, 0xfff4f65e, 0xfff5f660,
|
||||
0xfff4f657, 0xfff4f653, 0xfff2f453, 0xff6e6e42, 0xff808143, 0xffadae4e,
|
||||
0xff323231, 0xffe7e862, 0xfff6f76d, 0xfff6f76d, 0xfff5f66b, 0xfff3f568,
|
||||
0xfff2f467, 0xfff4f670, 0xfff4f671, 0xfff0f162, 0xffeeef55, 0xffe8ea58,
|
||||
0xffdbdc4f, 0xffd2d342, 0xffacad40, 0xff4d4d39, 0xf4333329, 0x7e48482f,
|
||||
0x04030303, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05040404, 0x09080806,
|
||||
0x02010101, 0x110b0b06, 0xe92a2a1b, 0xffd2d357, 0xfff3f54b, 0xfff3f54b,
|
||||
0xfff3f54f, 0xfff4f655, 0xfff5f769, 0xfff6f771, 0xfff5f768, 0xfff5f767,
|
||||
0xfff4f65b, 0xfff4f655, 0xfff4f656, 0xffe4e55b, 0xff494938, 0xff474733,
|
||||
0xff8c8c47, 0xfff5f666, 0xfff6f76f, 0xfff5f66e, 0xfff2f36b, 0xffebed67,
|
||||
0xffe9ea64, 0xfff0f173, 0xfff2f375, 0xffeced5f, 0xffeaeb54, 0xffe6e756,
|
||||
0xffdadc4d, 0xffd6d73e, 0xffd6d73d, 0xff727238, 0xfe555541, 0x68393925,
|
||||
0x03020201, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x4b1b1b11, 0xff444420, 0xffeeef4c, 0xffe1e34a,
|
||||
0xffdedf4b, 0xfff0f152, 0xfff3f56b, 0xfff6f77c, 0xfff6f777, 0xfff6f770,
|
||||
0xfff5f663, 0xfff4f659, 0xfff4f659, 0xfff5f660, 0xffb9ba50, 0xff40402c,
|
||||
0xfff5f660, 0xfff5f768, 0xfff5f770, 0xfff3f56f, 0xffedef6b, 0xffe3e565,
|
||||
0xffe1e263, 0xffebed75, 0xffeff17c, 0xffe9eb63, 0xffe6e854, 0xffdedf53,
|
||||
0xffd4d64c, 0xffdcdd43, 0xffe3e53d, 0xffd1d240, 0xff505034, 0x5d242418,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x88202013, 0xff5f5f2b, 0xff62623a,
|
||||
0xffc2c347, 0xffe7e94c, 0xffeaec6e, 0xffeff07d, 0xfff3f57e, 0xfff5f77a,
|
||||
0xfff6f772, 0xfff5f662, 0xfff4f65d, 0xfff5f661, 0xfff5f65f, 0xffd0d158,
|
||||
0xfff5f662, 0xfff5f76a, 0xfff4f571, 0xfff1f26f, 0xffeaeb6c, 0xffe1e267,
|
||||
0xffe1e366, 0xffebec78, 0xffebed7f, 0xffe5e673, 0xffe3e45e, 0xffd6d753,
|
||||
0xff707039, 0xff757533, 0xffcecf45, 0xffedee43, 0xffd9db42, 0xfc525230,
|
||||
0x5725251a, 0x00000000, 0x03020202, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x02010100, 0x46343415, 0xff5c5c38, 0xff8c8c41,
|
||||
0xffedef4e, 0xffd4d650, 0xffcacb64, 0xffe1e273, 0xffe6e770, 0xffeeef79,
|
||||
0xfff3f47f, 0xfff5f675, 0xfff5f663, 0xfff5f663, 0xfff5f661, 0xfff5f662,
|
||||
0xfff5f764, 0xfff5f76d, 0xfff3f573, 0xffeced70, 0xffe3e46d, 0xffddde69,
|
||||
0xffe1e36c, 0xffe8ea7c, 0xffe7e87f, 0xffe3e47d, 0xffe5e67a, 0xffe4e576,
|
||||
0xff494927, 0xff1b1b17, 0xff787840, 0xffe4e549, 0xfff0f244, 0xffd6d842,
|
||||
0xfc39392c, 0xb039392e, 0x71282827, 0x3c242424, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x08070703, 0x6635351c, 0xff4a4a35, 0xffe4e655,
|
||||
0xffe7e852, 0xff737443, 0xffd4d56d, 0xffdadb6c, 0xffd6d766, 0xffdbdc66,
|
||||
0xffe5e671, 0xffedee7f, 0xfff1f276, 0xfff3f468, 0xfff4f665, 0xfff5f766,
|
||||
0xfff5f769, 0xfff4f571, 0xfff1f276, 0xffe8e974, 0xffddde71, 0xffdcde71,
|
||||
0xffe3e479, 0xffe9ea82, 0xffe8e982, 0xffe8e984, 0xffd5d67e, 0xf444442c,
|
||||
0x630c0c0a, 0x4018180f, 0xd8464631, 0xffb8b849, 0xffeff147, 0xffeef045,
|
||||
0xff7a7a37, 0xff52523d, 0xff626250, 0xf8545454, 0x140b0b0b, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x2f232312, 0xec51513a, 0xffa2a251, 0xfff0f167,
|
||||
0xff797941, 0xff606043, 0xffdbdc70, 0xffe2e370, 0xffd4d669, 0xffcfd164,
|
||||
0xffd5d667, 0xffdedf75, 0xffe7e885, 0xffedee79, 0xfff1f36e, 0xfff4f56d,
|
||||
0xfff5f673, 0xfff3f477, 0xffeff07d, 0xffe6e781, 0xffe0e182, 0xffe4e587,
|
||||
0xffe9ea88, 0xffedee89, 0xffedee88, 0xffa5a663, 0xf42f2f22, 0x591f1f1a,
|
||||
0x00000000, 0x00000000, 0x190b0b06, 0xd9484833, 0xffb8b947, 0xfff0f24d,
|
||||
0xffdfe055, 0xff767647, 0xffe7e784, 0xffb1b183, 0x953e3e3d, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x100b0b08,
|
||||
0x00000000, 0x0d0c0c05, 0xc4727340, 0xffcbcc61, 0xfff3f46f, 0xffb6b761,
|
||||
0xff2b2b2a, 0x89333323, 0xf5313120, 0xffb3b45c, 0xffdfe06f, 0xffd4d569,
|
||||
0xffd0d168, 0xffd3d46f, 0xffdbdc7c, 0xffe6e783, 0xffeeef7f, 0xfff2f47c,
|
||||
0xfff4f57d, 0xfff2f483, 0xffeef089, 0xffe8e988, 0xffe7e98d, 0xffedee93,
|
||||
0xfff0f196, 0xffdbdc85, 0xff5d5e3c, 0xc022221a, 0x200c0c09, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x512e2e18, 0xff737341, 0xffcbcc52,
|
||||
0xfff0f161, 0xffd2d35c, 0xffddde6c, 0xffeff184, 0xfc7f7f6e, 0x100a0a0a,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x48222219, 0xe464644c,
|
||||
0x87343428, 0xb07b7b3c, 0xffb2b354, 0xfff5f767, 0xffe9ea68, 0xff52523c,
|
||||
0xcb4a4a47, 0x02010101, 0x4628281d, 0xdc2b2b1d, 0xff6f6f3b, 0xffbbbc60,
|
||||
0xffd9da6f, 0xffd5d673, 0xffd9da7d, 0xffe5e687, 0xffeff08a, 0xfff2f389,
|
||||
0xfff3f48a, 0xfff0f18c, 0xffeced8b, 0xffeaea8b, 0xffeaeb92, 0xffb2b374,
|
||||
0xff5c5c41, 0xec272724, 0x75232321, 0x06040403, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xab4b4b39, 0xffa1a261, 0xffb5b555,
|
||||
0xffeff15b, 0xffedef67, 0xffeaeb6c, 0xffeaec73, 0xff9b9b6d, 0x55262625,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x52202018, 0xff6c6d4f, 0xffabab70,
|
||||
0xff818152, 0xff54543c, 0xff9a9a46, 0xfff2f453, 0xff7e7f44, 0xf551513f,
|
||||
0x4c31312b, 0x00000000, 0x02010101, 0x352c2c1e, 0x74242418, 0xcb1e1e16,
|
||||
0xff535431, 0xffadae68, 0xffe4e592, 0xffeeef8e, 0xfff4f590, 0xfff5f691,
|
||||
0xfff3f491, 0xffe6e78a, 0xffc6c778, 0xff94945d, 0xff43432f, 0xbb21211c,
|
||||
0x541a1a19, 0x0d060606, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3211110e, 0xff80805a, 0xfff5f695, 0xffbebe6f,
|
||||
0xffdfe055, 0xffe7e968, 0xffe8e96a, 0xffe5e66f, 0xffadae6e, 0x46171715,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xd2363629, 0xffc2c374, 0xfff8f98f,
|
||||
0xffeeef71, 0xffa1a143, 0xffeff148, 0xffc8c943, 0xea494931, 0x1e16160d,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05040403, 0x04030302,
|
||||
0x4d14140e, 0xbd1f1f1b, 0xff444433, 0xff78784e, 0xff9c9c61, 0xff7b7b4e,
|
||||
0xff3f3f2d, 0xe623231b, 0xbf161611, 0x8d171712, 0x3d171711, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xad2c2c25, 0xffcbcc7a, 0xfff6f88e, 0xffedee87,
|
||||
0xffd6d854, 0xffd7d866, 0xffe1e36b, 0xffe4e574, 0xffcbcc7d, 0x4e131313,
|
||||
0x00000000, 0x00000000, 0x07050503, 0xf73a3a2b, 0xffd4d477, 0xfff7f888,
|
||||
0xffeaeb6a, 0xffe3e449, 0xfff3f543, 0xffbabb3f, 0xff7e7e3d, 0x86404026,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3f1a1a19, 0x5f080808, 0x5f030303, 0x5f0a0a0a,
|
||||
0x3f1d1d18, 0x08050504, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xfc525240, 0xfff3f48b, 0xfff8f98d, 0xffedef83,
|
||||
0xffcdcf59, 0xffc2c363, 0xffd5d670, 0xffe3e47f, 0xffddde88, 0x9d2a2a2a,
|
||||
0x00000000, 0x00000000, 0x03020201, 0xfb36362b, 0xfff4f483, 0xfff6f781,
|
||||
0xfff2f46a, 0xfff1f355, 0xfff3f544, 0xffe1e145, 0xffdee04e, 0xf756563d,
|
||||
0x341e1e12, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x05040403, 0xff838358, 0xfff8f98d, 0xfff8f98d, 0xffebec7d,
|
||||
0xffa7a851, 0xffa2a353, 0xffc8c971, 0xffdfe080, 0xffdadb88, 0xa7292929,
|
||||
0x00000000, 0x00000000, 0x5e373721, 0xff59593e, 0xfff6f784, 0xfff0f27a,
|
||||
0xffe7e965, 0xffe7e961, 0xffeeef48, 0xfff3f54e, 0xfff4f65a, 0xff8a8a4c,
|
||||
0x681c1c17, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xf1828256, 0xfff8f98d, 0xfff8f98d, 0xff9b9c5e,
|
||||
0xff82834d, 0xff97984e, 0xffbfc06e, 0xffdbdc80, 0xffd9da87, 0x8a212121,
|
||||
0x00000000, 0x00000000, 0xb341412f, 0xff74744c, 0xfff4f683, 0xffebed77,
|
||||
0xffdadc65, 0xffd5d769, 0xffe2e348, 0xfff0f252, 0xfff5f662, 0xffcdce60,
|
||||
0x7f22221d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xe2828255, 0xfff8f98f, 0xffd7d77f, 0xff585840,
|
||||
0xffb1b169, 0xff6c6c3e, 0xffbbbc6e, 0xffdbdb83, 0xffcdce81, 0xb13b3b3b,
|
||||
0x00000000, 0x00000000, 0xbf444433, 0xff72724d, 0xfff4f584, 0xffeff079,
|
||||
0xffddde6d, 0xffcccd77, 0xffd2d44d, 0xffe8ea56, 0xfff4f66a, 0xffdbdc65,
|
||||
0xba2a2a27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xf7707050, 0xfff2f390, 0xff686848, 0xff9b9b5f,
|
||||
0xffabac6d, 0xff525231, 0xffb7b86e, 0xffdadb84, 0xffbebf7d, 0x893c3c3c,
|
||||
0x00000000, 0x00000000, 0xbf404032, 0xff9b9b60, 0xffe9ea81, 0xfff5f67e,
|
||||
0xffc7c867, 0xffabab6e, 0xffc7c858, 0xffdcde59, 0xfff1f36c, 0xffd7d867,
|
||||
0xbc2c2c28, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xd74d4d3e, 0xffa8a86f, 0xfc46463d, 0xe6d8d994,
|
||||
0xff8c8c60, 0xff606039, 0xffb7b86d, 0xffdedf8a, 0xfc9b9b71, 0x3b191919,
|
||||
0x00000000, 0x00000000, 0x87323227, 0xff95955f, 0xffadae6a, 0xfff7f885,
|
||||
0xffc0c06d, 0xff606048, 0xffc5c663, 0xffd0d15a, 0xffeaeb6f, 0xffbdbe62,
|
||||
0xa92f2f27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x803e3e39, 0xff2d2d2c, 0xa8535351, 0x5b545442,
|
||||
0xff515143, 0xff82824e, 0xffc0c177, 0xffa3a46e, 0x9f34342f, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x1e0d0d0a, 0xfc6e6e51, 0xff6d6d50, 0xfff0f18f,
|
||||
0xffdadb89, 0xff353531, 0xff87884c, 0xffc8c861, 0xffe0e171, 0xffa1a25e,
|
||||
0xa7313128, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x0a070707, 0xbd585858, 0x00000000, 0x482f2f2e,
|
||||
0xff6b6b5f, 0xffa8a880, 0xffbebf96, 0xf443433d, 0x2c0c0c0c, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x2714140e, 0xf678785a, 0xffaaaa79,
|
||||
0xffe4e49b, 0xff4b4b42, 0xde515143, 0xff959657, 0xffd7d879, 0xff7e7e53,
|
||||
0x8f282822, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x02010101, 0x00000000, 0xa25a5a5a,
|
||||
0xff7f7f7f, 0xffb0b0b0, 0xfb676767, 0x5f232323, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x9b3e3e33, 0xffabab7f,
|
||||
0xfff5f5af, 0xff44443f, 0x4a333329, 0xc3292920, 0xfecccd87, 0xfb50503e,
|
||||
0x240c0c0a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x69484848,
|
||||
0xb2787878, 0x975a5a5a, 0x1f0f0f0f, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1e10100c, 0xf948483d,
|
||||
0xffdbdca4, 0xc7272725, 0x00000000, 0x01000000, 0x9a434333, 0xd5363631,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x350e0e0c,
|
||||
0xee484841, 0xb3262625, 0x00000000, 0x00000000, 0x1e040404, 0xb53c3c38,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x251a1a19, 0x97212121, 0x0d040404, 0x00000000, 0x00000000, 0x03010101,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
|
6
examples/null/Makefile
Normal file
|
@ -0,0 +1,6 @@
|
|||
TARGET = null.img
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
20
examples/null/main.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* "Null" SVGA example.
|
||||
*
|
||||
* This is a trivial SVGA test which just switches video modes and
|
||||
* halts the CPU.
|
||||
*/
|
||||
|
||||
#include "intr.h"
|
||||
#include "svga.h"
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
SVGA_SetMode(1024, 768, 32);
|
||||
|
||||
return 0;
|
||||
}
|
7
examples/screen-annotation/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-annotation.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
341
examples/screen-annotation/main.c
Normal file
|
@ -0,0 +1,341 @@
|
|||
/*
|
||||
* This example illustrates annotated GMRFB-to-screen blits.
|
||||
* Annotations are a way to give the device extra information about
|
||||
* the data in a blit. In this case, we're guaranteeing that the
|
||||
* contents of the blit are the result of a fill or copy operation.
|
||||
*
|
||||
* This example cheats a bit, and it actually lies to the SVGA device
|
||||
* in its annotations. This lets you see whether the annotations are
|
||||
* working or not- if the host uses the blit data we supply, we'll see
|
||||
* one result. If it uses the annotation, we'll see something
|
||||
* different.
|
||||
*
|
||||
* This example requires SVGA Screen Object support.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screen.h"
|
||||
#include "screendraw.h"
|
||||
#include "math.h"
|
||||
#include "mt19937ar.h"
|
||||
#include "timer.h"
|
||||
|
||||
#define GMRID_SCREEN_DRAW 0
|
||||
#define GMRID_NOISE 1
|
||||
#define FRAME_RATE 60
|
||||
#define SCREEN_ID 0
|
||||
|
||||
static volatile uint32 timerTick;
|
||||
|
||||
|
||||
/*
|
||||
* prepareNoiseRect --
|
||||
*
|
||||
* Prepare some noise as the source for a blit.
|
||||
* This defines the GMRFB, and generates a random source origin.
|
||||
*/
|
||||
|
||||
static void
|
||||
prepareNoiseRect(SVGASignedPoint *origin) // OUT
|
||||
{
|
||||
const uint32 bytesPerLine = 1024;
|
||||
static const SVGAGMRImageFormat format = {{{ 32, 24 }}};
|
||||
const SVGAGuestPtr gPtr = { GMRID_NOISE, 0 };
|
||||
const uint32 rand = genrand_int32();
|
||||
|
||||
Screen_DefineGMRFB(gPtr, bytesPerLine, format);
|
||||
|
||||
origin->x = rand & 0x7F;
|
||||
origin->y = (rand >> 8) & 0x7F;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* updateBorders --
|
||||
*
|
||||
* Clean up after the previous frame of animation, and draw the
|
||||
* white border around the current frame.
|
||||
*/
|
||||
|
||||
static void
|
||||
updateBorders(const SVGASignedRect *pOld,
|
||||
const SVGASignedRect *pNew)
|
||||
{
|
||||
const uint32 color = 0;
|
||||
SVGASignedRect newRect = *pNew;
|
||||
|
||||
/*
|
||||
* Outset each rectangle by one pixel, to make room for the border.
|
||||
*/
|
||||
|
||||
newRect.left--;
|
||||
newRect.right++;
|
||||
newRect.top--;
|
||||
newRect.bottom++;
|
||||
|
||||
/*
|
||||
* Draw the white borders
|
||||
*/
|
||||
|
||||
ScreenDraw_Border(newRect.left, newRect.top, newRect.right, newRect.bottom,
|
||||
0xFFFFFF, 1);
|
||||
|
||||
/*
|
||||
* Clear any pixels from 'oldRect' that are not in 'newRect'.
|
||||
*/
|
||||
|
||||
if (pOld) {
|
||||
SVGASignedRect oldRect = *pOld;
|
||||
|
||||
oldRect.left--;
|
||||
oldRect.right++;
|
||||
oldRect.top--;
|
||||
oldRect.bottom++;
|
||||
|
||||
/* Clear the right edge */
|
||||
if (newRect.right < oldRect.right) {
|
||||
ScreenDraw_Rectangle(newRect.right, oldRect.top,
|
||||
oldRect.right, oldRect.bottom,
|
||||
color);
|
||||
}
|
||||
|
||||
/* Clear the left edge */
|
||||
if (newRect.left > oldRect.left) {
|
||||
ScreenDraw_Rectangle(oldRect.left, oldRect.top,
|
||||
newRect.left, oldRect.bottom,
|
||||
color);
|
||||
}
|
||||
|
||||
/* Clear the top edge */
|
||||
if (newRect.top > oldRect.top) {
|
||||
ScreenDraw_Rectangle(oldRect.left, oldRect.top,
|
||||
oldRect.right, newRect.top,
|
||||
color);
|
||||
}
|
||||
|
||||
/* Clear the bottom edge */
|
||||
if (newRect.bottom < oldRect.bottom) {
|
||||
ScreenDraw_Rectangle(oldRect.left, newRect.bottom,
|
||||
oldRect.right, oldRect.bottom,
|
||||
color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* updateFillRect --
|
||||
*
|
||||
* Animate the test rectangle which demonstrates fill annotations.
|
||||
*/
|
||||
|
||||
static void
|
||||
updateFillRect(const SVGASignedRect *oldRect,
|
||||
const SVGASignedRect *newRect)
|
||||
{
|
||||
SVGASignedPoint srcOrigin;
|
||||
static const SVGAColorBGRX color = {{{ 0xFF, 0xCC, 0xCC }}}; // Light blue
|
||||
|
||||
prepareNoiseRect(&srcOrigin);
|
||||
|
||||
Screen_AnnotateFill(color);
|
||||
Screen_BlitFromGMRFB(&srcOrigin, newRect, SCREEN_ID);
|
||||
|
||||
updateBorders(oldRect, newRect);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* updateCopyRect --
|
||||
*
|
||||
* Animate the test rectangle which demonstrates copy annotations.
|
||||
*/
|
||||
|
||||
static void
|
||||
updateCopyRect(const SVGASignedRect *oldRect,
|
||||
const SVGASignedRect *newRect)
|
||||
{
|
||||
|
||||
/*
|
||||
* The first time through, draw a checkerboard test pattern.
|
||||
* On subsequent frames, annotate a copy of it from the previous frame.
|
||||
*/
|
||||
if (oldRect) {
|
||||
SVGASignedPoint noiseSrc, copySrc;
|
||||
|
||||
prepareNoiseRect(&noiseSrc);
|
||||
|
||||
copySrc.x = oldRect->left;
|
||||
copySrc.y = oldRect->top;
|
||||
|
||||
Screen_AnnotateCopy(©Src, SCREEN_ID);
|
||||
Screen_BlitFromGMRFB(&noiseSrc, newRect, SCREEN_ID);
|
||||
|
||||
} else {
|
||||
ScreenDraw_Checkerboard(newRect->left, newRect->top,
|
||||
newRect->right, newRect->bottom);
|
||||
}
|
||||
|
||||
updateBorders(oldRect, newRect);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* allocNoise --
|
||||
*
|
||||
* Allocates a new GMR, and fills it with random noise.
|
||||
*/
|
||||
|
||||
static void
|
||||
allocNoise(void)
|
||||
{
|
||||
const uint32 numPages = 500;
|
||||
const uint32 numWords = numPages * PAGE_SIZE / sizeof(uint32);
|
||||
|
||||
PPN pages = GMR_DefineContiguous(GMRID_NOISE, numPages);
|
||||
uint32 *ptr = PPN_POINTER(pages);
|
||||
int i;
|
||||
|
||||
init_genrand(0);
|
||||
|
||||
for (i = 0; i < numWords; i++) {
|
||||
ptr[i] = genrand_int32();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* timerISR --
|
||||
*
|
||||
* Trivial timer ISR, just increments our tick counter.
|
||||
*/
|
||||
|
||||
void
|
||||
timerISR(int vector)
|
||||
{
|
||||
timerTick++;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization and main loop.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
uint32 frame = 0;
|
||||
uint32 lastTick = 0;
|
||||
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
|
||||
Timer_InitPIT(PIT_HZ / FRAME_RATE);
|
||||
Intr_SetMask(PIT_IRQ, TRUE);
|
||||
Intr_SetHandler(IRQ_VECTOR(PIT_IRQ), timerISR);
|
||||
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(GMRID_SCREEN_DRAW);
|
||||
|
||||
allocNoise();
|
||||
|
||||
/*
|
||||
* Define a screen.
|
||||
*/
|
||||
|
||||
SVGAScreenObject myScreen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = SCREEN_ID,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 800, 600 },
|
||||
.root = { 0, 0 },
|
||||
};
|
||||
Screen_Define(&myScreen);
|
||||
|
||||
/*
|
||||
* Draw some explanatory text.
|
||||
*/
|
||||
|
||||
char docString[] =
|
||||
"Annotated Blit Sample:"
|
||||
"\n\n"
|
||||
"You should see two moving rectangles. The left one is animated "
|
||||
"using a fill-annotated blit. The blit itself contains random "
|
||||
"noise, but the annotation is a blue fill. If your host is "
|
||||
"using the annotation, you will see the blue. If not, you'll "
|
||||
"see noise. Either one is correct, but it is often more efficient "
|
||||
"to use the fill."
|
||||
"\n\n"
|
||||
"The right one is a copy-annotated blit. The blit data is again "
|
||||
"random noise, and the copy is a screen-to-screen copy which "
|
||||
"moves the rectangle from its old position to the new position. "
|
||||
"We drew a checkerboard pattern to the screen once, and that "
|
||||
"pattern should be preserved indefinitely if the annotation is "
|
||||
"being executed correctly."
|
||||
"\n\n"
|
||||
"Both rectangles should have a 1-pixel solid white border, and "
|
||||
"in both cases we use a fill-annotated blit to clear the screen "
|
||||
"behind each rectangle. This annotation doesn't lie, its blit data "
|
||||
"matches the advertised fill color.";
|
||||
|
||||
ScreenDraw_SetScreen(myScreen.id, myScreen.size.width, myScreen.size.height);
|
||||
Console_Clear();
|
||||
ScreenDraw_WrapText(docString, 770);
|
||||
Console_WriteString(docString);
|
||||
|
||||
/*
|
||||
* Animate the two rectangles indefinitely, sleeping between frames.
|
||||
*/
|
||||
|
||||
while (1) {
|
||||
SVGASignedRect oldRect1, oldRect2;
|
||||
SVGASignedRect newRect1, newRect2;
|
||||
|
||||
/*
|
||||
* Move them around in a circle.
|
||||
*/
|
||||
|
||||
float theta = frame * 0.01;
|
||||
|
||||
newRect1.left = 190 + cosf(theta) * 60;
|
||||
newRect1.top = 350 + sinf(theta) * 60;
|
||||
newRect1.right = newRect1.left + 80;
|
||||
newRect1.bottom = newRect1.top + 120;
|
||||
|
||||
newRect2.left = 530 + sinf(theta) * 60;
|
||||
newRect2.top = 350 + cosf(theta) * 60;
|
||||
newRect2.right = newRect2.left + 80;
|
||||
newRect2.bottom = newRect2.top + 120;
|
||||
|
||||
/*
|
||||
* Update the position of each.
|
||||
*/
|
||||
|
||||
updateFillRect(frame ? &oldRect1 : NULL, &newRect1);
|
||||
updateCopyRect(frame ? &oldRect2 : NULL, &newRect2);
|
||||
|
||||
oldRect1 = newRect1;
|
||||
oldRect2 = newRect2;
|
||||
|
||||
/*
|
||||
* Wait for the next timer tick.
|
||||
*/
|
||||
|
||||
while (timerTick == lastTick) {
|
||||
Intr_Halt();
|
||||
}
|
||||
lastTick = timerTick;
|
||||
frame++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
7
examples/screen-cursor/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-cursor.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
96
examples/screen-cursor/beachball_mono.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
96
examples/screen-cursor/beachball_mono_xor.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0xff, 0x00, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf3, 0xff, 0x00, 0x0f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xcf, 0xff, 0x00, 0x03, 0xff, 0x00, 0x00,
|
||||
0xff, 0x9f, 0xff, 0x00, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0x7f, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0xfe, 0xff, 0xff, 0x00, 0x00, 0x7f, 0x00, 0x00,
|
||||
0xfd, 0xff, 0xff, 0x00, 0x00, 0x3f, 0x00, 0x00,
|
||||
0xfb, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x00, 0x00,
|
||||
0xf3, 0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xf7, 0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00,
|
||||
0xef, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xef, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00,
|
||||
0xdf, 0xff, 0xff, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xdf, 0xff, 0xff, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0xbf, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0xff, 0xff, 0xef, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00,
|
||||
0xff, 0x00, 0x00, 0xff, 0xfe, 0xff, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0xff, 0xf9, 0xff, 0x00, 0x00,
|
||||
0xff, 0xc0, 0x00, 0xff, 0xf3, 0xff, 0x00, 0x00,
|
||||
0xff, 0xf0, 0x00, 0xff, 0xcf, 0xff, 0x00, 0x00,
|
||||
0xff, 0xfc, 0x00, 0xff, 0x3f, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
196
examples/screen-cursor/chip_mono.h
Normal file
|
@ -0,0 +1,196 @@
|
|||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x30, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xe0, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x01, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x83, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x07, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0f, 0xf8, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0xfc, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xfc, 0x0f, 0xfc, 0x10, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x07, 0xf8, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfe, 0x0f, 0xff, 0x80, 0x00, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xf8, 0x07, 0x00, 0xf0, 0x07, 0xfc, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0x00, 0x78, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7e, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x07, 0xfe, 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0x30, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x07, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xfe, 0x07, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xff, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf1, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfc, 0x7e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0x1f, 0xff, 0x0f, 0xfe, 0x3f, 0xff, 0xff, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xc7, 0xfc, 0x43, 0xf8, 0xff, 0xff, 0xff, 0xc4, 0x3f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0xf1, 0xfb, 0xfb, 0xe3, 0xff, 0xff, 0xff, 0x18, 0x1f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x0f, 0xff, 0xff, 0xfc, 0x79, 0xf3, 0x8f, 0xff, 0xff, 0xfc, 0x03, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0xff, 0xff, 0xff, 0x1c, 0x06, 0x3f, 0xff, 0xff, 0xf1, 0xcf, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x09, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0xe7, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x04, 0x7f, 0xff, 0xff, 0xf1, 0xe3, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x01, 0x1f, 0xff, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xfc, 0x3f, 0xfb, 0x8f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x04, 0x67, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf0, 0x1f, 0xfb, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0x11, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xc6, 0x4f, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x07, 0xc4, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x08, 0x0f, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x27, 0xf1, 0x9f, 0xff, 0xff, 0x7f, 0xff, 0xfc, 0x43, 0xc7, 0xf8, 0x0f, 0x80, 0x00, 0x00, 0x00,
|
||||
0x23, 0xfc, 0x47, 0xff, 0xff, 0x7f, 0xff, 0xf1, 0xf3, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x23, 0xff, 0x19, 0xff, 0xff, 0x7f, 0xff, 0xc7, 0xfb, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x2b, 0xff, 0xc4, 0x7f, 0xff, 0x7f, 0xff, 0x1f, 0xf9, 0xc7, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00,
|
||||
0x28, 0xff, 0xf1, 0x1f, 0xff, 0x7f, 0xfc, 0x1f, 0xfd, 0xc7, 0xf8, 0x04, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x3f, 0xfc, 0x47, 0xff, 0x7f, 0xf1, 0x4f, 0xfd, 0x07, 0xf8, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x0f, 0xff, 0x11, 0xff, 0x7f, 0xc6, 0x07, 0xfc, 0x07, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x03, 0xff, 0xc6, 0x7f, 0x7f, 0x01, 0xc7, 0xfc, 0x07, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x28, 0x00, 0xff, 0xf1, 0x1f, 0x7c, 0x73, 0xe3, 0xfc, 0x07, 0xf8, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x3f, 0xfc, 0x47, 0x71, 0xf9, 0xe3, 0xfc, 0x07, 0xf0, 0x02, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x0f, 0xff, 0x11, 0x41, 0xfd, 0xeb, 0xfc, 0x03, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00, 0x03, 0xff, 0xc4, 0x14, 0xfc, 0xe3, 0xfc, 0x03, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xb0, 0xff, 0xf1, 0x20, 0x7e, 0xc3, 0xfc, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xb0, 0x3f, 0xfc, 0x1c, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0xa0, 0x0f, 0xff, 0x3e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xa0, 0x03, 0xff, 0x7e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x18, 0x00, 0xa0, 0x00, 0xff, 0x7e, 0x3e, 0x03, 0xfc, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0xa0, 0x00, 0x3f, 0x7e, 0x3e, 0x03, 0xf0, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x0f, 0x7c, 0x3e, 0x01, 0xe0, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x03, 0x70, 0x3e, 0x01, 0x20, 0x00, 0x60, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x60, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x20, 0x01, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x30, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x30, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
BIN
examples/screen-cursor/images/alphacursor.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
examples/screen-cursor/images/beachball-mono-xor.png
Normal file
After Width: | Height: | Size: 362 B |
BIN
examples/screen-cursor/images/beachball-mono.png
Normal file
After Width: | Height: | Size: 328 B |
BIN
examples/screen-cursor/images/chip-mono.png
Normal file
After Width: | Height: | Size: 836 B |
BIN
examples/screen-cursor/images/moon.png
Normal file
After Width: | Height: | Size: 485 B |
BIN
examples/screen-cursor/images/planet.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
examples/screen-cursor/images/yellow-crab-256.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
examples/screen-cursor/images/yellow-crab.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
901
examples/screen-cursor/main.c
Normal file
|
@ -0,0 +1,901 @@
|
|||
/*
|
||||
* This is a test app for virtual hardware cursor overlays. It
|
||||
* provides a number of test cases which exercise and demonstrate the
|
||||
* various cursor modes.
|
||||
*
|
||||
* This example requires SVGA Screen Object support. (The cursor
|
||||
* functionality we're testing has nothing to do with Screen Object,
|
||||
* but Screen Object is required by our text drawing code...)
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "keyboard.h"
|
||||
#include "vmbackdoor.h"
|
||||
#include "timer.h"
|
||||
#include "mt19937ar.h"
|
||||
#include "math.h"
|
||||
|
||||
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
|
||||
#define GMRID_SCREEN_DRAW 0
|
||||
#define GMRID_NOISE 1
|
||||
#define FRAME_RATE 60
|
||||
|
||||
|
||||
/*
|
||||
* Global data
|
||||
*/
|
||||
|
||||
int currentTest = -1;
|
||||
const int testListX = 150;
|
||||
const int testListY = 70;
|
||||
const int testListItemHeight = 22;
|
||||
|
||||
SVGAScreenObject myScreen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 800, 600 },
|
||||
.root = { 150000, -0x20000000 },
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Test Cases
|
||||
*/
|
||||
|
||||
void
|
||||
testAlphaArrow(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 1,
|
||||
.hotspotY = 1,
|
||||
.width = 36,
|
||||
.height = 51,
|
||||
};
|
||||
|
||||
static const uint32 data[] = {
|
||||
# include "rgba_arrow.h"
|
||||
};
|
||||
|
||||
void *fifoData;
|
||||
|
||||
/*
|
||||
* Switch to 8-bit mode. Alpha cursors should work even if the
|
||||
* legacy framebuffer is in a low color depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, &fifoData);
|
||||
memcpy(fifoData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testGradient(int size)
|
||||
{
|
||||
const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = size / 2,
|
||||
.hotspotY = size / 2,
|
||||
.width = size,
|
||||
.height = size,
|
||||
};
|
||||
|
||||
uint32 *data;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, (void**) &data);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint8 alpha = y * 255 / cursor.height;
|
||||
|
||||
/* Solid white, with pre-multiplied alpha: L = 255 * alpha / 255 */
|
||||
uint8 luma = alpha;
|
||||
|
||||
*(data++) = (alpha << 24) | (luma << 16) | (luma << 8) | luma;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testGradient64(void)
|
||||
{
|
||||
testGradient(64);
|
||||
}
|
||||
|
||||
void
|
||||
testGradient180(void)
|
||||
{
|
||||
testGradient(180);
|
||||
}
|
||||
|
||||
void
|
||||
testGradient256(void)
|
||||
{
|
||||
testGradient(256);
|
||||
}
|
||||
|
||||
void
|
||||
testMonochrome(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 48,
|
||||
.height = 48,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "beachball_mono.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
/*
|
||||
* Switch to 32bpp mode, just because we can. Monochrome cursors
|
||||
* work in any framebuffer depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testMonochromeXOR(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 48,
|
||||
.height = 48,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "beachball_mono_xor.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testMonochromeLarge(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 50,
|
||||
.hotspotY = 50,
|
||||
.width = 100,
|
||||
.height = 98,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 1,
|
||||
};
|
||||
|
||||
static const uint8 data[] = {
|
||||
# include "chip_mono.h"
|
||||
};
|
||||
|
||||
void *andData, *xorData;
|
||||
|
||||
/*
|
||||
* Switch to 32bpp mode, just because we can. Monochrome cursors
|
||||
* work in any framebuffer depth.
|
||||
*/
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, &andData, &xorData);
|
||||
memcpy(andData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testANDXOR32(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 16,
|
||||
.hotspotY = 16,
|
||||
.width = 32,
|
||||
.height = 32,
|
||||
.andMaskDepth = 32,
|
||||
.xorMaskDepth = 32
|
||||
};
|
||||
|
||||
uint32 *andData, *xorData;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
|
||||
*(andData++) = 0x808080;
|
||||
*(xorData++) = y * 127 / cursor.height;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
static const uint32 yellowCrabData[] = {
|
||||
# include "yellow_crab_rgba.h"
|
||||
};
|
||||
|
||||
void
|
||||
buildCrabANDMask(uint8 *andData)
|
||||
{
|
||||
const uint32 *rgba = yellowCrabData;
|
||||
const int width = 48;
|
||||
const int height = 50;
|
||||
|
||||
uint32 andPitch = ((width + 31) / 32) * 4;
|
||||
uint8 *andLine;
|
||||
int x, y;
|
||||
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
andLine = andData;
|
||||
andData += andPitch;
|
||||
memset(andLine, 0, andPitch);
|
||||
|
||||
for (x = 0; x < width; x++) {
|
||||
uint32 color = *(rgba++);
|
||||
|
||||
*andLine <<= 1;
|
||||
|
||||
if ((color & 0xFF000000) == 0) {
|
||||
/*
|
||||
* Transparent pixel
|
||||
*/
|
||||
*andLine |= 1;
|
||||
}
|
||||
|
||||
if ((x & 7) == 7) {
|
||||
andLine++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testCrabAlpha(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
};
|
||||
|
||||
void *fifoData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, &fifoData);
|
||||
memcpy(fifoData, yellowCrabData, sizeof yellowCrabData);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR32(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 32
|
||||
};
|
||||
|
||||
uint8 *andData;
|
||||
uint32 *xorData;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 32);
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
buildCrabANDMask(andData);
|
||||
memcpy(xorData, yellowCrabData, sizeof yellowCrabData);
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR16(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 16
|
||||
};
|
||||
|
||||
const uint32 *rgba = yellowCrabData;
|
||||
uint8 *andData;
|
||||
uint16 *xorData;
|
||||
int x, y;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 16);
|
||||
if (SVGA_ReadReg(SVGA_REG_DEPTH) != 16) {
|
||||
Console_Panic("Expected SVGA_REG_DEPTH == 16 for 16bpp mode");
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
|
||||
buildCrabANDMask(andData);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint32 color = *(rgba++);
|
||||
|
||||
/*
|
||||
* Convert to RGB 5-6-5
|
||||
*/
|
||||
|
||||
uint8 r = (color >> 19) & 0x1F;
|
||||
uint8 g = (color >> 10) & 0x3F;
|
||||
uint8 b = (color >> 3) & 0x1F;
|
||||
|
||||
*(xorData++) = (r << 11) | (g << 5) | b;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
testCrabANDXOR8(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 25,
|
||||
.width = 48,
|
||||
.height = 50,
|
||||
.andMaskDepth = 1,
|
||||
.xorMaskDepth = 8
|
||||
};
|
||||
|
||||
static const uint8 crabPixels[] = {
|
||||
# include "yellow_crab_256_pixels.h"
|
||||
};
|
||||
|
||||
static const uint8 crabColormap[] = {
|
||||
# include "yellow_crab_256_colormap.h"
|
||||
};
|
||||
|
||||
uint8 *andData, *xorData;
|
||||
int i;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
if (SVGA_ReadReg(SVGA_REG_PSEUDOCOLOR) != TRUE) {
|
||||
Console_Panic("Expected SVGA_REG_PSUEDOCOLOR == TRUE for 8bpp mode");
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the crab's colormap into the SVGA palette registers.
|
||||
*/
|
||||
for (i = 0; i < arraysize(crabColormap); i++) {
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i, crabColormap[i]);
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
buildCrabANDMask(andData);
|
||||
memcpy(xorData, crabPixels, sizeof crabPixels);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
createPaletteCursor(void)
|
||||
{
|
||||
/*
|
||||
* Set up a cursor which shows every color in the palette. It has
|
||||
* a 1-pixel border of color 255, but every other color forms a
|
||||
* 16x16 grid in which each square is a different color. Each grid
|
||||
* square is 3x3 pixels.
|
||||
*
|
||||
* We also take this opportunity to use an 8-bit AND mask, but it's
|
||||
* fully opaque (all zeroes).
|
||||
*
|
||||
* This does mean that to function correctly, this cursor needs
|
||||
* color 0 to be black. The SVGA device doesn't specify whether
|
||||
* AND/XOR masks are applied before or after pseudocolor emulation,
|
||||
* so we need to be okay with either.
|
||||
*/
|
||||
|
||||
static const SVGAFifoCmdDefineCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 24,
|
||||
.hotspotY = 24,
|
||||
.width = 49,
|
||||
.height = 49,
|
||||
.andMaskDepth = 8,
|
||||
.xorMaskDepth = 8
|
||||
};
|
||||
|
||||
uint8 *andData, *xorData;
|
||||
uint8 *line;
|
||||
int x, y;
|
||||
uint32 pitch = roundup(cursor.width, sizeof(uint32)) * sizeof(uint32);
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
if (SVGA_ReadReg(SVGA_REG_PSEUDOCOLOR) != TRUE) {
|
||||
Console_Panic("Expected SVGA_REG_PSUEDOCOLOR == TRUE for 8bpp mode");
|
||||
}
|
||||
|
||||
SVGA_BeginDefineCursor(&cursor, (void**) &andData, (void**) &xorData);
|
||||
memset(andData, 0, pitch * cursor.height);
|
||||
|
||||
for (y = 0; y < cursor.height; y++) {
|
||||
line = xorData;
|
||||
xorData += pitch;
|
||||
|
||||
for (x = 0; x < cursor.width; x++) {
|
||||
uint8 color;
|
||||
|
||||
if (y == 0 || x == 0 || y == cursor.height - 1 || x == cursor.width - 1) {
|
||||
/* Border color */
|
||||
color = 0xFF;
|
||||
|
||||
} else {
|
||||
int row = (y - 1) / 3;
|
||||
int column = (x - 1) / 3;
|
||||
|
||||
color = row * 16 + column;
|
||||
}
|
||||
|
||||
*(line++) = color;
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
void
|
||||
animatePalette(void)
|
||||
{
|
||||
/*
|
||||
* Animate the palette. This is stolen from the vbe-palette test...
|
||||
*/
|
||||
|
||||
static int tick = 0;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Let the phase of each color channel slowly drift around.
|
||||
*/
|
||||
const float rPhase = tick * 0.001;
|
||||
const float gPhase = tick * 0.002;
|
||||
const float bPhase = tick * 0.003;
|
||||
|
||||
/*
|
||||
* Animate every color except 0 (used for the AND mask) and 255
|
||||
* (for the border).
|
||||
*/
|
||||
|
||||
for (i = 1; i < 255; i++) {
|
||||
const int x = (i & 0x0F) - 3;
|
||||
const int y = (i >> 4) - 3;
|
||||
const float t = (x*x + y*y) * 0.05 + tick * 0.02;
|
||||
|
||||
const uint8 r = sinf(t + rPhase) * 0x7f + 0x80;
|
||||
const uint8 g = sinf(t + gPhase) * 0x7f + 0x80;
|
||||
const uint8 b = sinf(t + bPhase) * 0x7f + 0x80;
|
||||
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 0, r);
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 1, g);
|
||||
SVGA_WriteReg(SVGA_PALETTE_BASE + i * 3 + 2, b);
|
||||
}
|
||||
|
||||
tick++;
|
||||
}
|
||||
|
||||
void
|
||||
blit32(const uint32 *src, int srcX, int srcY, int srcWidth,
|
||||
uint32 *dest, int destX, int destY, int destWidth,
|
||||
int copyWidth, int copyHeight)
|
||||
{
|
||||
src += srcX + srcY * srcWidth;
|
||||
dest += destX + destY * destWidth;
|
||||
|
||||
while (copyHeight--) {
|
||||
memcpy32(dest, src, copyWidth);
|
||||
src += srcWidth;
|
||||
dest += destWidth;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
testCursorAnim(void)
|
||||
{
|
||||
/*
|
||||
* Animate a cursor image of a moon orbiting a planet. The cursor
|
||||
* hotspot is always centered on the planet, but we dynamically
|
||||
* size the cursor according to the bounding box around the planet
|
||||
* and moon, and we dynamically adjust the hotspot to keep it
|
||||
* centered on the moon.
|
||||
*/
|
||||
|
||||
const int moonWidth = 10;
|
||||
const int planetWidth = 20;
|
||||
|
||||
static int tick = 0;
|
||||
float angle = tick * 0.03;
|
||||
tick++;
|
||||
|
||||
const int orbitRadius = 40;
|
||||
int orbitX = cosf(angle) * orbitRadius;
|
||||
int orbitY = sinf(angle) * orbitRadius;
|
||||
|
||||
int width, height, planetX, planetY, moonX, moonY;
|
||||
|
||||
if (orbitX >= 0) {
|
||||
width = planetWidth + orbitX;
|
||||
planetX = planetWidth/2;
|
||||
moonX = planetX + orbitX;
|
||||
} else {
|
||||
width = planetWidth - orbitX;
|
||||
moonX = planetWidth/2;
|
||||
planetX = moonX - orbitX;
|
||||
}
|
||||
|
||||
if (orbitY >= 0) {
|
||||
height = planetWidth + orbitY;
|
||||
planetY = planetWidth/2;
|
||||
moonY = planetY + orbitY;
|
||||
} else {
|
||||
height = planetWidth - orbitY;
|
||||
moonY = planetWidth/2;
|
||||
planetY = moonY - orbitY;
|
||||
}
|
||||
|
||||
const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = planetX,
|
||||
.hotspotY = planetY,
|
||||
.width = width,
|
||||
.height = height,
|
||||
};
|
||||
|
||||
uint32 *image;
|
||||
|
||||
static const uint32 planet[] = {
|
||||
# include "planet_rgba.h"
|
||||
};
|
||||
static const uint32 moon[] = {
|
||||
# include "moon_rgba.h"
|
||||
};
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_BITS_PER_PIXEL, 8);
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, (void**) &image);
|
||||
memset32(image, 0, width * height);
|
||||
|
||||
blit32(planet, 0, 0, planetWidth,
|
||||
image, planetX - planetWidth/2, planetY - planetWidth/2, width,
|
||||
planetWidth, planetWidth);
|
||||
|
||||
blit32(moon, 0, 0, moonWidth,
|
||||
image, moonX - moonWidth/2, moonY - moonWidth/2, width,
|
||||
moonWidth, moonWidth);
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* gTestCases --
|
||||
*
|
||||
* Master array of cursor test cases. Each one has a title and a
|
||||
* function pointer. The function is run once when a test mode is
|
||||
* selected.
|
||||
*/
|
||||
|
||||
struct {
|
||||
void (*fn)(void);
|
||||
const char *title;
|
||||
void (*animateFn)(void);
|
||||
} gTestCases[] = {
|
||||
{ testAlphaArrow, "Translucent arrow cursor (36x51)" },
|
||||
{ testGradient64, "Gradient from transparent white to opaque white (64x64)" },
|
||||
{ testGradient180, "Gradient from transparent white to opaque white (180x180)" },
|
||||
{ testGradient256, "Gradient from transparent white to opaque white (256x256)" },
|
||||
{ testMonochrome, "Monochrome beachball cursor (48x48)" },
|
||||
{ testMonochromeXOR, "Monochrome beachball cursor with XOR pixels (48x48)" },
|
||||
{ testMonochromeLarge, "Monochrome chip cursor (100x96)" },
|
||||
{ testANDXOR32, "AND masks off 7 LSBs, XOR draws blue gradient (32x32)" },
|
||||
{ testCrabAlpha, "Yellow crab, alpha blended (48x50)" },
|
||||
{ testCrabANDXOR32, "Yellow crab, 1-bit AND, 32-bit XOR (48x50)" },
|
||||
{ testCrabANDXOR16, "Yellow crab, 1-bit AND, 16-bit XOR (48x50)" },
|
||||
{ testCrabANDXOR8, "Yellow crab, 1-bit AND, 8-bit XOR (48x50)" },
|
||||
{ createPaletteCursor, "Palette animation, 8-bit AND/XOR (49x49)", animatePalette },
|
||||
{ testCursorAnim, "Animated cursor (variable size and hotspot)", testCursorAnim }
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* selectTest --
|
||||
*
|
||||
* Switch to a new current test case. Hilight the new test, un-hilight
|
||||
* the old one, and call the new test's function.
|
||||
*/
|
||||
|
||||
void
|
||||
selectTest(int newTest)
|
||||
{
|
||||
if (newTest < 0) {
|
||||
newTest += arraysize(gTestCases);
|
||||
} else if (newTest >= arraysize(gTestCases)) {
|
||||
newTest -= arraysize(gTestCases);
|
||||
}
|
||||
|
||||
if (currentTest != newTest) {
|
||||
|
||||
if (currentTest >= 0) {
|
||||
ScreenDraw_Border(testListX,
|
||||
testListY + testListItemHeight * currentTest,
|
||||
myScreen.size.width - testListX,
|
||||
testListY + testListItemHeight * (currentTest + 1),
|
||||
0x000000, 2);
|
||||
}
|
||||
|
||||
currentTest = newTest;
|
||||
|
||||
ScreenDraw_Border(testListX,
|
||||
testListY + testListItemHeight * currentTest,
|
||||
myScreen.size.width - testListX,
|
||||
testListY + testListItemHeight * (currentTest + 1),
|
||||
0xFFFF00, 2);
|
||||
|
||||
gTestCases[newTest].fn();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* allocNoise --
|
||||
*
|
||||
* Allocates a new GMR, and fills it with random noise.
|
||||
*/
|
||||
|
||||
static void
|
||||
allocNoise(void)
|
||||
{
|
||||
const uint32 numPages = 500;
|
||||
const uint32 numWords = numPages * PAGE_SIZE / sizeof(uint32);
|
||||
|
||||
PPN pages = GMR_DefineContiguous(GMRID_NOISE, numPages);
|
||||
uint32 *ptr = PPN_POINTER(pages);
|
||||
int i;
|
||||
|
||||
init_genrand(0);
|
||||
|
||||
for (i = 0; i < numWords; i++) {
|
||||
ptr[i] = genrand_int32();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* prepareNoiseRect --
|
||||
*
|
||||
* Prepare some noise as the source for a blit.
|
||||
* This defines the GMRFB, and generates a random source origin.
|
||||
*/
|
||||
|
||||
static void
|
||||
prepareNoiseRect(SVGASignedPoint *origin) // OUT
|
||||
{
|
||||
const uint32 bytesPerLine = 512;
|
||||
static const SVGAGMRImageFormat format = {{{ 32, 24 }}};
|
||||
const SVGAGuestPtr gPtr = { GMRID_NOISE, 0 };
|
||||
const uint32 rand = genrand_int32();
|
||||
|
||||
Screen_DefineGMRFB(gPtr, bytesPerLine, format);
|
||||
|
||||
origin->x = rand & 0x7F;
|
||||
origin->y = (rand >> 8) & 0x7F;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization and main loop. This reads a global array of test
|
||||
* cases, and presents a menu which cycles through them. The main
|
||||
* loop services keyboard and mouse input, and draws an animated test
|
||||
* pattern for testing cursor interaction with the base layer.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
|
||||
Timer_InitPIT(PIT_HZ / FRAME_RATE);
|
||||
Intr_SetMask(PIT_IRQ, TRUE);
|
||||
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
|
||||
Keyboard_Init();
|
||||
VMBackdoor_MouseInit(TRUE);
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(GMRID_SCREEN_DRAW);
|
||||
allocNoise();
|
||||
Screen_Define(&myScreen);
|
||||
|
||||
/*
|
||||
* Draw the menu of test modes.
|
||||
*/
|
||||
|
||||
ScreenDraw_SetScreen(myScreen.id, myScreen.size.width, myScreen.size.height);
|
||||
Console_Clear();
|
||||
ScreenDraw_Border(0, 0, myScreen.size.width, myScreen.size.height, 0x808080, 1);
|
||||
|
||||
Console_WriteString("Cursor tests:\n"
|
||||
"Select with up/down arrows. "
|
||||
"Move cursor with mouse or WASD keys.\n");
|
||||
|
||||
for (currentTest = 0; currentTest < arraysize(gTestCases); currentTest++) {
|
||||
Console_MoveTo(testListX + 2, testListY + testListItemHeight * currentTest + 2);
|
||||
Console_Format("%d. %s", currentTest + 1, gTestCases[currentTest].title);
|
||||
}
|
||||
|
||||
/*
|
||||
* Draw a white square on the right side of the menu, so we can see
|
||||
* what the cursors look like on a solid white background.
|
||||
*/
|
||||
|
||||
ScreenDraw_Rectangle(myScreen.size.width - testListX + 10,
|
||||
testListY,
|
||||
myScreen.size.width - 10,
|
||||
myScreen.size.height - 10,
|
||||
0xFFFFFF);
|
||||
|
||||
/*
|
||||
* Main loop.
|
||||
*/
|
||||
|
||||
selectTest(0);
|
||||
|
||||
while (1) {
|
||||
int prevTest = currentTest - 1;
|
||||
int nextTest = currentTest + 1;
|
||||
static VMMousePacket mouseState;
|
||||
const int kbdMouseSpeed = 100;
|
||||
Bool needCursorUpdate = FALSE;
|
||||
|
||||
while (Keyboard_IsKeyPressed(KEY_UP)) {
|
||||
selectTest(prevTest);
|
||||
}
|
||||
|
||||
while (Keyboard_IsKeyPressed(KEY_DOWN)) {
|
||||
selectTest(nextTest);
|
||||
}
|
||||
|
||||
while (VMBackdoor_MouseGetPacket(&mouseState)) {
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('w')) {
|
||||
mouseState.y -= kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('s')) {
|
||||
mouseState.y += kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('a')) {
|
||||
mouseState.x -= kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (Keyboard_IsKeyPressed('d')) {
|
||||
mouseState.x += kbdMouseSpeed;
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (needCursorUpdate) {
|
||||
/*
|
||||
* Send a cursor position update. In order to test the SVGA
|
||||
* device's cursor screen ID support, we alternate between
|
||||
* sending cursor updates in virtual coordinates and in
|
||||
* screen-relative coordinates.
|
||||
*
|
||||
* If all is well, cursor movement should still be smooth. If
|
||||
* there's a bug in decoding, the cursor will jitter as it's
|
||||
* moved, or the cursor may flicker if it's moved over an
|
||||
* animated region like the static bar on the left side of
|
||||
* the screen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Fixed-point to pixels.
|
||||
*/
|
||||
SVGASignedPoint pixelLocation = {
|
||||
mouseState.x * myScreen.size.width / 65535,
|
||||
mouseState.y * myScreen.size.height / 65535
|
||||
};
|
||||
|
||||
uint32 screenId;
|
||||
static Bool toggle;
|
||||
|
||||
if (toggle) {
|
||||
screenId = SVGA_ID_INVALID;
|
||||
pixelLocation.x += myScreen.root.x;
|
||||
pixelLocation.y += myScreen.root.y;
|
||||
toggle = FALSE;
|
||||
} else {
|
||||
screenId = myScreen.id;
|
||||
toggle = TRUE;
|
||||
}
|
||||
|
||||
SVGA_MoveCursor(TRUE, pixelLocation.x, pixelLocation.y, screenId);
|
||||
}
|
||||
|
||||
/*
|
||||
* Draw some noise on the side of the screen, for testing overlay compositing.
|
||||
*/
|
||||
|
||||
SVGASignedPoint srcOrigin;
|
||||
SVGASignedRect noiseRect = {
|
||||
10, testListY, testListX - 10, myScreen.size.height - 10,
|
||||
};
|
||||
|
||||
prepareNoiseRect(&srcOrigin);
|
||||
Screen_BlitFromGMRFB(&srcOrigin, &noiseRect, myScreen.id);
|
||||
|
||||
/*
|
||||
* Some tests are animated...
|
||||
*/
|
||||
|
||||
if (gTestCases[currentTest].animateFn) {
|
||||
gTestCases[currentTest].animateFn();
|
||||
}
|
||||
|
||||
/*
|
||||
* Wait for the next frame.
|
||||
*/
|
||||
|
||||
Intr_Halt();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
examples/screen-cursor/moon_rgba.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
0x00000000, 0x00000000, 0x3e020202, 0xc9161515, 0xdc1f1f1f, 0xdc1f1e1e,
|
||||
0xc9131212, 0x3e020202, 0x00000000, 0x00000000, 0x00000000, 0x880f0e0e,
|
||||
0xe6484646, 0xf5d1c9c9, 0xf5d6cfcf, 0xf5cbc5c5, 0xf5b6b1b1, 0xe63b3a3a,
|
||||
0x880c0b0b, 0x00000000, 0x3e020202, 0xe6484545, 0xf5e5dcdc, 0xf5e9e0e0,
|
||||
0xf5e0d9d9, 0xf5d4cdcd, 0xf5c7c2c2, 0xf5bab5b5, 0xe6383737, 0x3e010101,
|
||||
0xc9161515, 0xf5cfc7c7, 0xf5e7dede, 0xf5f2e8e8, 0xf5e5dddd, 0xf5d8d1d1,
|
||||
0xf5cac4c4, 0xf5bdb8b8, 0xf5a7a3a3, 0xc9111111, 0xdc1f1f1f, 0xf5d3cdcd,
|
||||
0xf5ded7d7, 0xf5e4dcdc, 0xf5dfd8d8, 0xf5d6cfcf, 0xf5c9c4c4, 0xf5bcb8b8,
|
||||
0xf5afabab, 0xdc191919, 0xdc1e1e1e, 0xf5c9c4c4, 0xf5d2cbcb, 0xf5d7d0d0,
|
||||
0xf5d5cece, 0xf5cec8c8, 0xf5c4bfbf, 0xf5b9b5b5, 0xf5acaaaa, 0xdc191919,
|
||||
0xc9121212, 0xf5b4b1b1, 0xf5c5c0c0, 0xf5c9c4c4, 0xf5c8c3c3, 0xf5c4bfbf,
|
||||
0xf5bcb8b8, 0xf5b2afaf, 0xf59f9d9d, 0xc9101010, 0x3e020202, 0xe63b3939,
|
||||
0xf5b8b4b4, 0xf5bbb7b7, 0xf5bbb7b7, 0xf5b8b4b4, 0xf5b2afaf, 0xf5aba8a8,
|
||||
0xe6353434, 0x3e010101, 0x00000000, 0x880b0b0b, 0xe6383737, 0xf5a5a2a2,
|
||||
0xf5aeabab, 0xf5aba9a9, 0xf59f9d9d, 0xe6353434, 0x880b0b0b, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3e010101, 0xc9111010, 0xdc191919, 0xdc191919,
|
||||
0xc9101010, 0x3e010101, 0x00000000, 0x00000000,
|
67
examples/screen-cursor/planet_rgba.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000,
|
||||
0x49010101, 0x900d0d10, 0xc4141419, 0xd71e1e25, 0xd71c1c25, 0xc4121218,
|
||||
0x910a0a0f, 0x49000001, 0x04000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x2d000000, 0xd3161618, 0xf0696876, 0xf79c9ab2, 0xf5b2afd0, 0xf5acabcf,
|
||||
0xf5a4a4cc, 0xf5999ac6, 0xf77a7ba5, 0xf04a4c6b, 0xd20e0e15, 0x2d000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x8a0c0c0e, 0xe5343338, 0xf6bbb6c9, 0xf5cac5db, 0xf5c5c1d9,
|
||||
0xf5bfbbd6, 0xf5b6b3d3, 0xf5acabcf, 0xf5a3a2cb, 0xf59898c7, 0xf58d8fc3,
|
||||
0xf6767aaf, 0xe51f2030, 0x8a07070b, 0x02000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x8a0c0c0e, 0xf1716e79, 0xf5d3cddd, 0xf5d7d1df,
|
||||
0xf5d6d0de, 0xf5d1cbdc, 0xf5c8c4da, 0xf5bfbbd6, 0xf5b4b2d2, 0xf5aaa9ce,
|
||||
0xf59e9ec9, 0xf59394c5, 0xf5878ac1, 0xf57b7fbc, 0xf13e4166, 0x8a06070b,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x2d000000, 0xe5343338, 0xf5d2ccdd,
|
||||
0xf5dcd5e1, 0xf5e2dbe3, 0xf5e2dbe3, 0xf5dbd4e0, 0xf5d1cbdc, 0xf5c6c2d9,
|
||||
0xf5bbb7d5, 0xf5afadd0, 0xf5a3a3cb, 0xf59798c7, 0xf58c8ec3, 0xf57f83be,
|
||||
0xf57479b9, 0xe51a1c2e, 0x2d000000, 0x00000000, 0x04000000, 0xd3161518,
|
||||
0xf6b8b4c8, 0xf5d5cede, 0xf5e0d9e3, 0xf5ebe2e7, 0xf5ede4e8, 0xf5e2dbe3,
|
||||
0xf5d7d0df, 0xf5cac5db, 0xf5bfbbd6, 0xf5b2b0d1, 0xf5a7a6cd, 0xf59a9bc8,
|
||||
0xf58f91c4, 0xf58285bf, 0xf5777aba, 0xf66267a7, 0xd20a0b14, 0x04000000,
|
||||
0x49010101, 0xf0686576, 0xf5c6c2d9, 0xf5d2ccdd, 0xf5ded7e2, 0xf5e9e0e6,
|
||||
0xf5ede4e8, 0xf5e3dce4, 0xf5d8d2df, 0xf5ccc7dc, 0xf5c1bdd7, 0xf5b4b1d2,
|
||||
0xf5a9a7cd, 0xf59c9cc8, 0xf59192c4, 0xf58487c0, 0xf5797cbb, 0xf56c72b6,
|
||||
0xf0353962, 0x49000001, 0x910d0d0f, 0xf79997b1, 0xf5c2bed7, 0xf5ccc7dc,
|
||||
0xf5d7d0df, 0xf5ded8e2, 0xf5e1dae3, 0xf5ddd6e1, 0xf5d5cede, 0xf5cac5db,
|
||||
0xf5c0bcd6, 0xf5b4b1d2, 0xf5a9a7cd, 0xf59c9cc8, 0xf59192c4, 0xf58587c0,
|
||||
0xf5797cbb, 0xf56d72b6, 0xf7515796, 0x9106070d, 0xc4141419, 0xf5aeadce,
|
||||
0xf5bbb8d5, 0xf5c4c0d8, 0xf5cdc7dc, 0xf5d3cddd, 0xf5d6cfde, 0xf5d4cede,
|
||||
0xf5cdc8dc, 0xf5c5c1d9, 0xf5bcb8d5, 0xf5b1aed1, 0xf5a6a5cc, 0xf59b9bc8,
|
||||
0xf59091c4, 0xf58487c0, 0xf5797cbb, 0xf56c72b6, 0xf56066b0, 0xc40a0b15,
|
||||
0xd71d1d25, 0xf5a9a8cd, 0xf5b2b0d1, 0xf5bbb8d5, 0xf5c3bfd8, 0xf5c7c3da,
|
||||
0xf5cac4db, 0xf5c8c4da, 0xf5c4c1d9, 0xf5bebad6, 0xf5b6b3d3, 0xf5acabcf,
|
||||
0xf5a2a2cb, 0xf59798c7, 0xf58d8fc3, 0xf58185bf, 0xf5777aba, 0xf56b71b6,
|
||||
0xf56066b1, 0xd7101020, 0xd71b1b25, 0xf5a0a0ca, 0xf5a9a8cd, 0xf5b0aed1,
|
||||
0xf5b7b4d3, 0xf5bcb8d5, 0xf5bebad6, 0xf5bebad6, 0xf5bbb7d4, 0xf5b5b2d2,
|
||||
0xf5aeacd0, 0xf5a6a5cc, 0xf59d9dc9, 0xf59394c5, 0xf5898bc2, 0xf57e82bd,
|
||||
0xf57479b9, 0xf5686eb5, 0xf55e64b0, 0xd70f1020, 0xc4111118, 0xf59596c4,
|
||||
0xf59f9fc9, 0xf5a6a5cc, 0xf5ababcf, 0xf5afadd0, 0xf5b2afd1, 0xf5b2afd1,
|
||||
0xf5afadd0, 0xf5abaacf, 0xf5a6a5cc, 0xf59e9ec9, 0xf59697c6, 0xf58e90c4,
|
||||
0xf58487c0, 0xf57a7ebc, 0xf57075b8, 0xf5656bb3, 0xf55961ae, 0xc4090a15,
|
||||
0x910a0a0e, 0xf77778a3, 0xf59495c5, 0xf59b9bc8, 0xf5a0a0ca, 0xf5a4a3cb,
|
||||
0xf5a6a5cc, 0xf5a6a5cc, 0xf5a5a4cc, 0xf5a1a1ca, 0xf59c9cc8, 0xf59697c6,
|
||||
0xf58f91c4, 0xf58789c1, 0xf57e81bd, 0xf5757aba, 0xf56b71b6, 0xf56167b2,
|
||||
0xf7485093, 0x9105060d, 0x49000001, 0xf0484a6a, 0xf58a8cc2, 0xf59091c4,
|
||||
0xf59495c5, 0xf59898c7, 0xf59a9ac7, 0xf59a9bc8, 0xf5999ac7, 0xf59697c6,
|
||||
0xf59393c5, 0xf58d8fc3, 0xf58789c1, 0xf57f82be, 0xf5777bbb, 0xf56e74b7,
|
||||
0xf5656bb3, 0xf55c63b0, 0xf02e3160, 0x49000000, 0x04000000, 0xd30e0e16,
|
||||
0xf67477ad, 0xf58487c0, 0xf5898bc2, 0xf58c8ec3, 0xf58e90c4, 0xf58f91c4,
|
||||
0xf58e90c4, 0xf58c8ec3, 0xf5888bc1, 0xf58386bf, 0xf57d81bd, 0xf5777bbb,
|
||||
0xf57075b8, 0xf5676db4, 0xf55f66b1, 0xf64f56a0, 0xd2090913, 0x04000000,
|
||||
0x00000000, 0x2d000000, 0xe51d1f30, 0xf5797cbb, 0xf57c80bd, 0xf58083be,
|
||||
0xf58285bf, 0xf58286bf, 0xf58285bf, 0xf58083be, 0xf57d81bd, 0xf57a7dbb,
|
||||
0xf57479b9, 0xf56e74b7, 0xf5676db4, 0xf56066b1, 0xf55860ae, 0xe514172c,
|
||||
0x2d000000, 0x00000000, 0x00000000, 0x00000000, 0x8a06070b, 0xf13c3f65,
|
||||
0xf57176b8, 0xf57479b9, 0xf5767aba, 0xf5777bba, 0xf5777aba, 0xf5757aba,
|
||||
0xf57378b9, 0xf56f74b7, 0xf56a70b5, 0xf5646bb3, 0xf55f65b1, 0xf55860ae,
|
||||
0xf12c315f, 0x8a04050a, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x8a06060b, 0xe51a1b2e, 0xf66065a6, 0xf56a70b5, 0xf56b71b6,
|
||||
0xf56b71b6, 0xf5696fb5, 0xf5676db4, 0xf5646ab3, 0xf56067b1, 0xf55b62af,
|
||||
0xf64e56a0, 0xe514172c, 0x8a04050a, 0x02000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2d000000, 0xd30a0b14,
|
||||
0xf0343862, 0xf7505695, 0xf55e65af, 0xf55e65b1, 0xf55c63b0, 0xf55860ae,
|
||||
0xf7484f92, 0xf02d315f, 0xd2090913, 0x2d000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x04000000, 0x49000001, 0x9006070d, 0xc4090b15, 0xd70f1020,
|
||||
0xd70f1020, 0xc4090a15, 0x9105060d, 0x49000000, 0x04000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
307
examples/screen-cursor/rgba_arrow.h
Normal file
|
@ -0,0 +1,307 @@
|
|||
0x6e000000, 0x10000000, 0x01000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x90000001, 0x57000001, 0x13000000, 0x04000000, 0x04000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x6a010103, 0x4a030306, 0x69000001, 0x09000000, 0x08000000, 0x07000000,
|
||||
0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x62020204, 0x2106060c, 0x4b06060c, 0x70010103, 0x1e000000, 0x0d000000,
|
||||
0x08000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x64020205, 0x2f080910, 0x2c090a12, 0x6207070e, 0x6b020205, 0x22000000,
|
||||
0x0d000000, 0x09000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x5d020205, 0x380a0a13, 0x330c0c17, 0x410c0d18, 0x6c090a12, 0x76020205,
|
||||
0x13000000, 0x0d000000, 0x09000000, 0x04000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x55030407, 0x440c0d18, 0x390e0e1b, 0x440f101e, 0x4a10101f, 0x6f0d0d1a,
|
||||
0x78030307, 0x24000000, 0x0f000000, 0x09000000, 0x05000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x4d040408, 0x4d0d0e1a, 0x3f10111f, 0x49111221, 0x4f121323, 0x53131325,
|
||||
0x7d0d0e1a, 0x72040409, 0x24000000, 0x0f000000, 0x0a000000, 0x05000000,
|
||||
0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x42040408, 0x590f0f1c, 0x44121324, 0x4e131425, 0x55141528, 0x59151629,
|
||||
0x60151629, 0x820f101e, 0x7705050a, 0x16000000, 0x10000000, 0x0a000000,
|
||||
0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x30020205, 0x720f0f1d, 0x4b151528, 0x5516172b, 0x5c17182c, 0x6018182e,
|
||||
0x64181930, 0x67191a31, 0x8016162a, 0x7706070d, 0x26000001, 0x12000000,
|
||||
0x0a000000, 0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x2a020205, 0x77101020, 0x5117182d, 0x5b18192f, 0x62191a30, 0x671a1b32,
|
||||
0x6b1b1c34, 0x6e1c1c35, 0x701c1d36, 0x8a15162a, 0x7708080f, 0x2a000001,
|
||||
0x11000000, 0x0b000000, 0x06000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x29020205, 0x77121223, 0x56191a30, 0x611a1b32, 0x681b1c34, 0x6d1c1d36,
|
||||
0x711d1e38, 0x751e1f3a, 0x781f203b, 0x7c1e203b, 0x9218192f, 0x7b080810,
|
||||
0x1e000000, 0x12000000, 0x0b000000, 0x06000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x27020205, 0x78131325, 0x5e1c1d36, 0x691c1e38, 0x701d1e39, 0x751e1f3a,
|
||||
0x7a1f203c, 0x7d20213e, 0x80212240, 0x83222342, 0x85222443, 0x9b1d1e39,
|
||||
0x8d080810, 0x30000001, 0x15000000, 0x0c000000, 0x06000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x24020204, 0x78121224, 0x661e1f3a, 0x6f1f203c, 0x771f213d, 0x7c20223e,
|
||||
0x81212241, 0x84222342, 0x87232544, 0x8a242546, 0x8c252647, 0x8e252648,
|
||||
0xa41c1d37, 0x8a090a13, 0x32000102, 0x14000000, 0x0d000000, 0x07000000,
|
||||
0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x21000001, 0x7a0f0f1e, 0x6e1f203c, 0x75212240, 0x7d222341, 0x83222343,
|
||||
0x88232545, 0x8b252646, 0x8e252648, 0x9126274a, 0x9427284c, 0x9628294d,
|
||||
0x99282a4d, 0xab1e1f3a, 0x92090912, 0x23000000, 0x16000000, 0x0d000000,
|
||||
0x06000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1f000000, 0x7e0e0f1c, 0x7721223f, 0x7c232445, 0x84242546, 0x8b252647,
|
||||
0x90262749, 0x9327284b, 0x9628294d, 0x99282a4f, 0x9c2a2b50, 0x9f2b2c52,
|
||||
0xa12b2d54, 0xa22c2d55, 0xb3242546, 0x960a0a14, 0x36010102, 0x1a000000,
|
||||
0x0e000000, 0x08000000, 0x04000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1a000001, 0x7b0f101e, 0x7f222443, 0x82262749, 0x8b26284a, 0x9227294c,
|
||||
0x97282a4e, 0x9a292a4f, 0x9d2a2b51, 0xa02b2d53, 0xa32c2e55, 0xa52c2e56,
|
||||
0xa82e2f58, 0xaa2e305a, 0xab2e305b, 0xb8222443, 0x910b0b17, 0x37010102,
|
||||
0x18000000, 0x0f000000, 0x08000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x15000102, 0x780f0f1d, 0x88242545, 0x8828294d, 0x91282a4f, 0x98292a4f,
|
||||
0x9e2a2c52, 0xa12b2d53, 0xa32c2e55, 0xa62d2e57, 0xaa2e3059, 0xac2f305b,
|
||||
0xaf30325c, 0xb131325e, 0xb2313360, 0xb431335e, 0xbd252749, 0x960c0c18,
|
||||
0x28000000, 0x19000000, 0x0f000000, 0x07000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x0e000001, 0x740d0e1a, 0x91242647, 0x8f2a2c52, 0x982b2d53, 0xa02c2d55,
|
||||
0xa62d2e57, 0xa92e2f58, 0xac2f305a, 0xaf30315c, 0xb130325d, 0xb4313360,
|
||||
0xb6323461, 0xb9333563, 0xba333564, 0xbb343765, 0xbc353767, 0xc62d2f58,
|
||||
0x9b0b0c17, 0x3a010103, 0x1d000000, 0x10000000, 0x08000000, 0x04000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x06000000, 0x6c0a0a14, 0x99252748, 0x942c2e55, 0x9e2d2f57, 0xa52d2f59,
|
||||
0xac2f315b, 0xaf30325c, 0xb230325e, 0xb5323360, 0xb7323462, 0xb9333563,
|
||||
0xbc353665, 0xbe353766, 0xc0363868, 0xc237396a, 0xc3383a6b, 0xc3383a6d,
|
||||
0xca2a2b52, 0x93111122, 0x3a020204, 0x1b000000, 0x10000000, 0x08000000,
|
||||
0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x660a0a13, 0x9e27284c, 0x9a2f305a, 0xa32f315c, 0xab30325d,
|
||||
0xb231335f, 0xb5323361, 0xb8333562, 0xba343564, 0xbd353666, 0xbf353868,
|
||||
0xc2363969, 0xc438396b, 0xc6383b6d, 0xc8393b6e, 0xc93a3b6f, 0xca3b3c72,
|
||||
0xcb3a3d71, 0xcb2f315c, 0x99101121, 0x31010102, 0x1b000000, 0x10000000,
|
||||
0x07000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x62090a13, 0xa2292a50, 0xa031325f, 0xa9323360, 0xb1323461,
|
||||
0xb8333664, 0xbc353665, 0xbf353767, 0xc1363869, 0xc337396a, 0xc6383a6c,
|
||||
0xc8393a6e, 0xca393c6f, 0xcc3b3c71, 0xcf3c3e74, 0xd03c3e74, 0xd23d3f76,
|
||||
0xd23e4078, 0xd23e4179, 0xd9353867, 0xaa101120, 0x44020205, 0x20000000,
|
||||
0x11000000, 0x09000000, 0x05000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x5f080810, 0xa6292a4f, 0xa5333563, 0xae333564, 0xb7353766,
|
||||
0xbe363868, 0xc237396a, 0xc438396b, 0xc7383b6e, 0xc9393b6f, 0xcb3a3c70,
|
||||
0xcd3b3d72, 0xd03c3e74, 0xd23d3f75, 0xd43e4077, 0xd53f4179, 0xd740417b,
|
||||
0xd940437d, 0xd941447d, 0xd941447e, 0xdb333562, 0xa8131425, 0x47020305,
|
||||
0x1e000000, 0x12000000, 0x0a000000, 0x04000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x5806070d, 0xa9282a4e, 0xab353767, 0xb3363868, 0xbc37386a,
|
||||
0xc3383a6c, 0xc7383b6e, 0xc93a3b6f, 0xcc3b3c71, 0xce3b3d72, 0xd03c3e74,
|
||||
0xd23d3f76, 0xd43e4077, 0xd63f4179, 0xd840427b, 0xda40437d, 0xdc42447f,
|
||||
0xde434581, 0xdf434582, 0xe0444784, 0xe0444682, 0xe1353767, 0xb1121223,
|
||||
0x36010102, 0x1f000000, 0x13000000, 0x09000000, 0x04000000, 0x01000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02000000, 0x44020305, 0xa8252749, 0xb1383a6c, 0xba383b6e, 0xc2393c6f,
|
||||
0xc93b3c71, 0xcd3b3d72, 0xd03c3e74, 0xd23d3f76, 0xd43e4077, 0xd63e4179,
|
||||
0xd840427b, 0xda40437d, 0xdc41447e, 0xde434480, 0xdf434582, 0xe1444683,
|
||||
0xe3454785, 0xe5464887, 0xe6474989, 0xe7484a8b, 0xe7484b8c, 0xea3d4077,
|
||||
0xb4131324, 0x4a020205, 0x25000000, 0x14000000, 0x0b000000, 0x05000000,
|
||||
0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x3e020204, 0xab242647, 0xb73a3c70, 0xbf3b3c71, 0xc73c3d73,
|
||||
0xce3c3f75, 0xd23d4076, 0xd53e4178, 0xd740417b, 0xd940427c, 0xdb41437e,
|
||||
0xdd424480, 0xde434580, 0xe0434682, 0xe2454684, 0xe4454886, 0xe6474988,
|
||||
0xe8474a8a, 0xe9484a8b, 0xea494c8c, 0xec4a4c8f, 0xec4a4d90, 0xec4b4d91,
|
||||
0xeb393b6f, 0xb115162a, 0x4c020205, 0x22000000, 0x15000000, 0x0b000000,
|
||||
0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x37030306, 0xad252648, 0xbc3c3e74, 0xc43d3f76, 0xcb3e3f76,
|
||||
0xd33f4179, 0xd63f427a, 0xd940437c, 0xdb41437e, 0xde434480, 0xe0434682,
|
||||
0xe1444683, 0xe3454785, 0xe5464887, 0xe6474988, 0xe8474a8a, 0xea484b8c,
|
||||
0xec4a4c8e, 0xed4a4d90, 0xee4b4e90, 0xf04c4f92, 0xf14c4f94, 0xf24e5096,
|
||||
0xf24c4f94, 0xef3b3d73, 0xb7141427, 0x3b010102, 0x23000000, 0x15000000,
|
||||
0x09000000, 0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x2c030307, 0xb31f203e, 0xc23f4178, 0xca40427b, 0xd140437c,
|
||||
0xd941447e, 0xdc42457f, 0xde434480, 0xe2434581, 0xe43f427b, 0xe640417b,
|
||||
0xe8424580, 0xe9444683, 0xea454886, 0xeb464989, 0xed484b8b, 0xef494b8e,
|
||||
0xf04b4d90, 0xf14b4e91, 0xf24c4f94, 0xf44d5095, 0xf54e5197, 0xf650529a,
|
||||
0xf851549d, 0xf851549d, 0xfb444683, 0xb8151629, 0x4e030305, 0x28000000,
|
||||
0x15000000, 0x0b000000, 0x05000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x20030306, 0xb41c1e38, 0xc841437d, 0xcf41447f, 0xd6434480,
|
||||
0xdd434682, 0xe0444783, 0xe3454885, 0xe4363869, 0xce1d1d37, 0xca1a1c34,
|
||||
0xd7222443, 0xd7252649, 0xd7282a4e, 0xe32c2d55, 0xe42c2e56, 0xe42e305a,
|
||||
0xe930325d, 0xeb2f315d, 0xeb30315e, 0xf0323462, 0xf43a3c6f, 0xf53d3f76,
|
||||
0xf7424480, 0xfb424581, 0xfb444784, 0xf6323460, 0xb40f101e, 0x4e020204,
|
||||
0x23000000, 0x14000000, 0x0a000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x0d010102, 0xb117182e, 0xcd434581, 0xd4444683, 0xdb444785,
|
||||
0xe1464887, 0xe5464988, 0xe7464988, 0xda1d1e3a, 0x8c020205, 0x85010103,
|
||||
0x8a030307, 0x89030408, 0x89040408, 0x8f05050a, 0x9005050a, 0x9105060b,
|
||||
0x9405060b, 0x9605050b, 0x9805050b, 0xa3080811, 0xac0d0e1a, 0xad0e0e1b,
|
||||
0xb1101120, 0xb9111221, 0xb6111223, 0xb0111121, 0xa407080f, 0x65020205,
|
||||
0x32000000, 0x1f000000, 0x10000000, 0x06000000, 0x02000000, 0x00000000,
|
||||
0x00000000, 0x04000000, 0xae15162a, 0xd3454786, 0xd9464987, 0xe0474989,
|
||||
0xe6484a8a, 0xea494c8d, 0xef3b3d74, 0xb107070e, 0x7c000000, 0x79000000,
|
||||
0x74000000, 0x6f000000, 0x6b000000, 0x69000000, 0x6a000000, 0x6c000000,
|
||||
0x6e000000, 0x70000000, 0x72000000, 0x73000000, 0x75000000, 0x77000000,
|
||||
0x79000000, 0x79000000, 0x78000000, 0x71000000, 0x66000000, 0x56000000,
|
||||
0x3d000000, 0x29000000, 0x18000000, 0x0a000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x04000000, 0xaa15162a, 0xd9474a8a, 0xde484a8b, 0xe4494c8d,
|
||||
0xea4a4d8f, 0xee494c8e, 0xef28294d, 0x8a020203, 0x7c000000, 0x76000000,
|
||||
0x6a000000, 0x60000000, 0x58000000, 0x54000000, 0x54000000, 0x55000000,
|
||||
0x57000000, 0x59000000, 0x5a000000, 0x5c000000, 0x5e000000, 0x60000000,
|
||||
0x62000000, 0x64000000, 0x65000000, 0x62000000, 0x5c000000, 0x50000000,
|
||||
0x3d000000, 0x2a000000, 0x1a000000, 0x0b000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x03000000, 0x9c111222, 0xdf484a8b, 0xe34a4d90, 0xe94b4e92,
|
||||
0xee4c4f93, 0xf341447f, 0xcf16162b, 0x80000000, 0x7a000000, 0x6f000000,
|
||||
0x5d000000, 0x4d000000, 0x42000000, 0x3b000000, 0x39000000, 0x3a000000,
|
||||
0x3c000000, 0x3d000000, 0x3e000000, 0x40000000, 0x41000000, 0x43000000,
|
||||
0x46000000, 0x48000000, 0x49000000, 0x48000000, 0x46000000, 0x3f000000,
|
||||
0x32000000, 0x24000000, 0x17000000, 0x0a000000, 0x04000000, 0x01000000,
|
||||
0x00000000, 0x03000000, 0x8a0e0e1c, 0xe7484b8b, 0xea4e5095, 0xee4e5197,
|
||||
0xf34e5196, 0xf0303260, 0xa106070e, 0x80000000, 0x76000000, 0x65000000,
|
||||
0x4b000000, 0x36000000, 0x28000000, 0x1f000000, 0x1d000000, 0x1d000000,
|
||||
0x1e000000, 0x1f000000, 0x1f000000, 0x20000000, 0x21000000, 0x23000000,
|
||||
0x25000000, 0x26000000, 0x27000000, 0x28000000, 0x27000000, 0x25000000,
|
||||
0x1e000000, 0x16000000, 0x0e000000, 0x07000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x02000000, 0x6e06070d, 0xed474a8a, 0xee4f5299, 0xf250539a,
|
||||
0xf6494c8d, 0xd61d1f39, 0x90010103, 0x7f000000, 0x71000000, 0x5b000000,
|
||||
0x3d000000, 0x28000000, 0x19000000, 0x10000000, 0x0d000000, 0x0d000000,
|
||||
0x0d000000, 0x0e000000, 0x0e000000, 0x0f000000, 0x0f000000, 0x10000000,
|
||||
0x11000000, 0x12000000, 0x13000000, 0x14000000, 0x13000000, 0x12000000,
|
||||
0x0f000000, 0x0c000000, 0x08000000, 0x04000000, 0x02000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x60040408, 0xf2464987, 0xf351539c, 0xf752559e,
|
||||
0xf53f417a, 0xb60c0c17, 0x85000000, 0x7c000000, 0x6a000000, 0x51000000,
|
||||
0x32000000, 0x1c000000, 0x0f000000, 0x07000000, 0x05000000, 0x04000000,
|
||||
0x04000000, 0x04000000, 0x05000000, 0x05000000, 0x05000000, 0x06000000,
|
||||
0x06000000, 0x07000000, 0x07000000, 0x07000000, 0x07000000, 0x07000000,
|
||||
0x06000000, 0x05000000, 0x03000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x5607070e, 0xf8464787, 0xf95356a2, 0xfc5456a3,
|
||||
0xe3222342, 0x8f020205, 0x82000000, 0x76000000, 0x60000000, 0x44000000,
|
||||
0x25000000, 0x13000000, 0x08000000, 0x02000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x02000000, 0x02000000, 0x02000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x4907070e, 0xfd42447f, 0xfe5659a6, 0xff4c4f92,
|
||||
0xbb0c0c18, 0x7c000000, 0x7f000000, 0x6f000000, 0x56000000, 0x3a000000,
|
||||
0x1d000000, 0x0d000000, 0x05000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x3807070e, 0xff3e4077, 0xff575aa6, 0xfd333564,
|
||||
0x82030307, 0x7a000000, 0x7a000000, 0x67000000, 0x4b000000, 0x2f000000,
|
||||
0x16000000, 0x09000000, 0x03000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x10010103, 0xff333562, 0xff4d5094, 0xc7191a31,
|
||||
0x66000000, 0x74000000, 0x72000000, 0x59000000, 0x3e000000, 0x24000000,
|
||||
0x0f000000, 0x06000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xfb30315c, 0xf83b3d72, 0x860b0b16,
|
||||
0x62000000, 0x6e000000, 0x68000000, 0x4e000000, 0x33000000, 0x1b000000,
|
||||
0x0a000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xf5292b51, 0xce252749, 0x5b020205,
|
||||
0x5c000000, 0x65000000, 0x5c000000, 0x41000000, 0x28000000, 0x14000000,
|
||||
0x07000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x05000000, 0xdc191a32, 0x8a0c0c18, 0x3b000000,
|
||||
0x52000000, 0x57000000, 0x4d000000, 0x33000000, 0x1d000000, 0x0d000000,
|
||||
0x04000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x04000000, 0xb00d0e1a, 0x4d040408, 0x33000000,
|
||||
0x48000000, 0x4a000000, 0x3f000000, 0x27000000, 0x15000000, 0x09000000,
|
||||
0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x03000000, 0x5707070e, 0x20000001, 0x2c000000,
|
||||
0x3c000000, 0x3c000000, 0x31000000, 0x1d000000, 0x0e000000, 0x06000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x03000000, 0x09000000, 0x14000000, 0x21000000,
|
||||
0x2c000000, 0x2b000000, 0x22000000, 0x13000000, 0x09000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x02000000, 0x07000000, 0x0f000000, 0x18000000,
|
||||
0x1f000000, 0x1e000000, 0x17000000, 0x0c000000, 0x05000000, 0x02000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x05000000, 0x0a000000, 0x0f000000,
|
||||
0x14000000, 0x13000000, 0x0e000000, 0x07000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x05000000, 0x08000000,
|
||||
0x09000000, 0x08000000, 0x06000000, 0x03000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x03000000,
|
||||
0x04000000, 0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
|
20
examples/screen-cursor/scripts/img2bytes.py
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Convert an image file to hexadecimal bytes of indexed color data.
|
||||
#
|
||||
# -- Micah Dowty <micah@vmware.com>
|
||||
#
|
||||
|
||||
import Image
|
||||
import sys
|
||||
|
||||
im = Image.open(sys.argv[1])
|
||||
column = 0
|
||||
|
||||
for byte in im.getdata():
|
||||
print "0x%02x, " % byte,
|
||||
column += 1
|
||||
if column == 8:
|
||||
print
|
||||
column = 0
|
||||
|
20
examples/screen-cursor/scripts/img2colormap.py
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Convert an image file to hexadecimal bytes of colormap data.
|
||||
#
|
||||
# -- Micah Dowty <micah@vmware.com>
|
||||
#
|
||||
|
||||
import Image
|
||||
import sys
|
||||
|
||||
im = Image.open(sys.argv[1])
|
||||
column = 0
|
||||
|
||||
for byte in im.getpalette():
|
||||
print "0x%02x, " % byte,
|
||||
column += 1
|
||||
if column == 8:
|
||||
print
|
||||
column = 0
|
||||
|
29
examples/screen-cursor/scripts/img2mono32.py
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Convert a 1bpp image file to hexadecimal bytes of monochrome
|
||||
# bitmap data. Bits are packed MSB-first. Each scanline is padded
|
||||
# to 32 bits.
|
||||
#
|
||||
# -- Micah Dowty <micah@vmware.com>
|
||||
#
|
||||
|
||||
import Image
|
||||
import sys
|
||||
|
||||
im = Image.open(sys.argv[1])
|
||||
|
||||
sys.stderr.write("width=%d height=%d\n" % im.size)
|
||||
|
||||
width, height = im.size
|
||||
paddedWidth = (width + 31) & ~31
|
||||
|
||||
for y in range(height):
|
||||
for xByte in range(paddedWidth / 8):
|
||||
byte = 0
|
||||
for xBit in range(8):
|
||||
x = xByte * 8 + xBit
|
||||
if x < width and im.getpixel((x,y)):
|
||||
byte |= 1 << (7 - xBit)
|
||||
|
||||
print "0x%02x, " % byte,
|
||||
print
|
29
examples/screen-cursor/scripts/img2rgbapre.py
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Convert an image file to hexadecimal words of pre-multiplied RGBA data.
|
||||
#
|
||||
# -- Micah Dowty <micah@vmware.com>
|
||||
#
|
||||
|
||||
import Image
|
||||
import sys
|
||||
|
||||
im = Image.open(sys.argv[1])
|
||||
|
||||
sys.stderr.write("width=%d height=%d\n" % im.size)
|
||||
|
||||
words = []
|
||||
|
||||
def flush():
|
||||
print " ".join(words)
|
||||
del words[:]
|
||||
|
||||
for r, g, b, a in im.getdata():
|
||||
r = r * a // 255
|
||||
g = g * a // 255
|
||||
b = b * a // 255
|
||||
words.append("0x%02x%02x%02x%02x," % (a,r,g,b))
|
||||
if len(words) >= 6:
|
||||
flush()
|
||||
|
||||
flush()
|
96
examples/screen-cursor/yellow_crab_256_colormap.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x7c, 0xf9,
|
||||
0x01, 0xc8, 0x24, 0x28, 0x25, 0x3b, 0xe5, 0x0e,
|
||||
0x10, 0x06, 0x10, 0x11, 0x08, 0x10, 0x11, 0x0c,
|
||||
0x10, 0x12, 0x06, 0x10, 0x12, 0x09, 0x12, 0x14,
|
||||
0x11, 0x15, 0x16, 0x14, 0x18, 0x1a, 0x11, 0x19,
|
||||
0x1a, 0x18, 0x1b, 0x1c, 0x17, 0x1c, 0x1e, 0x1b,
|
||||
0x1d, 0x1f, 0x0f, 0x1d, 0x1f, 0x1b, 0x23, 0x24,
|
||||
0x1c, 0x26, 0x27, 0x19, 0x26, 0x28, 0x25, 0x29,
|
||||
0x2b, 0x28, 0x2c, 0x2c, 0x19, 0x2a, 0x2c, 0x1f,
|
||||
0x2d, 0x2d, 0x17, 0x30, 0x30, 0x2a, 0x33, 0x32,
|
||||
0x17, 0x30, 0x32, 0x24, 0x32, 0x31, 0x2a, 0x30,
|
||||
0x32, 0x2f, 0x32, 0x34, 0x31, 0x36, 0x37, 0x25,
|
||||
0x38, 0x38, 0x21, 0x36, 0x38, 0x35, 0x3a, 0x3a,
|
||||
0x17, 0x39, 0x3c, 0x30, 0x40, 0x3e, 0x32, 0x3f,
|
||||
0x3e, 0x37, 0x40, 0x41, 0x19, 0x3e, 0x40, 0x2e,
|
||||
0x44, 0x43, 0x2a, 0x44, 0x44, 0x3d, 0x44, 0x46,
|
||||
0x43, 0x48, 0x48, 0x30, 0x48, 0x4a, 0x2a, 0x48,
|
||||
0x49, 0x36, 0x4b, 0x4b, 0x43, 0x4c, 0x4d, 0x3b,
|
||||
0x4c, 0x4c, 0x48, 0x4d, 0x50, 0x42, 0x52, 0x54,
|
||||
0x30, 0x54, 0x53, 0x3b, 0x53, 0x54, 0x41, 0x55,
|
||||
0x54, 0x3c, 0x57, 0x57, 0x2b, 0x59, 0x59, 0x40,
|
||||
0x5d, 0x5a, 0x3d, 0x5c, 0x5f, 0x22, 0x59, 0x5b,
|
||||
0x58, 0x5c, 0x5b, 0x54, 0x5c, 0x5e, 0x3a, 0x61,
|
||||
0x5f, 0x29, 0x62, 0x5f, 0x41, 0x62, 0x62, 0x36,
|
||||
0x62, 0x61, 0x49, 0x61, 0x63, 0x4f, 0x63, 0x65,
|
||||
0x40, 0x67, 0x68, 0x28, 0x67, 0x68, 0x3d, 0x66,
|
||||
0x67, 0x65, 0x68, 0x6a, 0x45, 0x6a, 0x69, 0x50,
|
||||
0x6c, 0x6c, 0x41, 0x6a, 0x6a, 0x5c, 0x69, 0x6d,
|
||||
0x4d, 0x6f, 0x6d, 0x3d, 0x70, 0x6d, 0x4f, 0x71,
|
||||
0x72, 0x33, 0x71, 0x72, 0x3b, 0x71, 0x72, 0x4d,
|
||||
0x73, 0x73, 0x48, 0x75, 0x73, 0x43, 0x76, 0x79,
|
||||
0x41, 0x77, 0x76, 0x5c, 0x7a, 0x78, 0x48, 0x79,
|
||||
0x78, 0x4d, 0x7c, 0x7c, 0x38, 0x7f, 0x7c, 0x45,
|
||||
0x7d, 0x7c, 0x5a, 0x7d, 0x7f, 0x40, 0x80, 0x82,
|
||||
0x28, 0x7b, 0x7c, 0x7a, 0x82, 0x80, 0x4f, 0x81,
|
||||
0x81, 0x55, 0x80, 0x80, 0x72, 0x81, 0x84, 0x4b,
|
||||
0x86, 0x87, 0x38, 0x86, 0x87, 0x48, 0x85, 0x84,
|
||||
0x6a, 0x89, 0x87, 0x55, 0x88, 0x87, 0x5b, 0x89,
|
||||
0x8a, 0x4b, 0x8d, 0x8d, 0x47, 0x90, 0x91, 0x3e,
|
||||
0x91, 0x92, 0x46, 0x92, 0x92, 0x4c, 0x93, 0x94,
|
||||
0x54, 0x93, 0x93, 0x60, 0x92, 0x94, 0x5b, 0x97,
|
||||
0x98, 0x3e, 0x98, 0x9a, 0x46, 0x9b, 0x99, 0x4d,
|
||||
0x98, 0x9c, 0x4e, 0x99, 0x9b, 0x61, 0x9b, 0x9c,
|
||||
0x5c, 0x9b, 0x9b, 0x71, 0x9f, 0x9e, 0x58, 0xa3,
|
||||
0xa3, 0x41, 0xa1, 0xa4, 0x50, 0xa3, 0xa4, 0x63,
|
||||
0xa5, 0xa6, 0x4b, 0xa2, 0xa6, 0x71, 0xaa, 0xad,
|
||||
0x3b, 0xa8, 0xa9, 0x70, 0xae, 0xac, 0x43, 0xa8,
|
||||
0xa7, 0x8c, 0xae, 0xac, 0x65, 0xaf, 0xb1, 0x37,
|
||||
0xac, 0xac, 0x80, 0xae, 0xae, 0x6d, 0xae, 0xb2,
|
||||
0x47, 0xac, 0xb0, 0x61, 0xb2, 0xb1, 0x4e, 0xaf,
|
||||
0xb1, 0x5c, 0xb5, 0xb6, 0x5a, 0xae, 0xb0, 0xad,
|
||||
0xb5, 0xb9, 0x46, 0xb8, 0xb7, 0x54, 0xba, 0xbb,
|
||||
0x39, 0xb9, 0xba, 0x4f, 0xb4, 0xb9, 0x70, 0xb8,
|
||||
0xba, 0x64, 0xb8, 0xba, 0x6b, 0xc0, 0xbd, 0x54,
|
||||
0xbc, 0xc0, 0x54, 0xc0, 0xc1, 0x47, 0xbe, 0xbf,
|
||||
0x62, 0xc0, 0xc2, 0x6b, 0xbe, 0xbf, 0x96, 0xc5,
|
||||
0xc4, 0x60, 0xc1, 0xc4, 0x76, 0xc3, 0xc3, 0x80,
|
||||
0xc7, 0xc9, 0x56, 0xc7, 0xca, 0x5e, 0xcc, 0xcc,
|
||||
0x41, 0xcc, 0xcc, 0x4d, 0xc9, 0xca, 0x74, 0xcd,
|
||||
0xd1, 0x3d, 0xcf, 0xcf, 0x4d, 0xcf, 0xd2, 0x34,
|
||||
0xcb, 0xcd, 0x7e, 0xd0, 0xd1, 0x57, 0xcf, 0xd1,
|
||||
0x5d, 0xd3, 0xd7, 0x43, 0xd1, 0xd4, 0x67, 0xd2,
|
||||
0xd7, 0x4b, 0xd5, 0xd8, 0x3b, 0xd6, 0xd7, 0x55,
|
||||
0xd9, 0xd7, 0x4d, 0xd7, 0xd5, 0x70, 0xd6, 0xd6,
|
||||
0x78, 0xd7, 0xd8, 0x65, 0xd5, 0xd6, 0x7f, 0xd9,
|
||||
0xdc, 0x3f, 0xd8, 0xdc, 0x48, 0xd6, 0xd9, 0x6c,
|
||||
0xd4, 0xd9, 0x72, 0xd8, 0xd5, 0x9f, 0xda, 0xdb,
|
||||
0x60, 0xd8, 0xd7, 0x94, 0xdc, 0xdc, 0x61, 0xda,
|
||||
0xdf, 0x5b, 0xd8, 0xdb, 0x89, 0xdd, 0xe0, 0x4c,
|
||||
0xe0, 0xe1, 0x3b, 0xe1, 0xdf, 0x5d, 0xdd, 0xe1,
|
||||
0x56, 0xe0, 0xe2, 0x46, 0xdc, 0xdd, 0x85, 0xd8,
|
||||
0xdc, 0xa4, 0xde, 0xe0, 0x6b, 0xdf, 0xde, 0x7f,
|
||||
0xdd, 0xe0, 0x72, 0xe3, 0xe1, 0x57, 0xe4, 0xe5,
|
||||
0x3f, 0xe2, 0xe2, 0x66, 0xdf, 0xde, 0x97, 0xe4,
|
||||
0xe6, 0x4a, 0xe4, 0xe7, 0x53, 0xe4, 0xe5, 0x71,
|
||||
0xe7, 0xe6, 0x63, 0xe6, 0xe6, 0x6a, 0xea, 0xea,
|
||||
0x3b, 0xe3, 0xe8, 0x64, 0xe5, 0xe9, 0x5d, 0xe2,
|
||||
0xe5, 0x92, 0xeb, 0xeb, 0x47, 0xe5, 0xe8, 0x7a,
|
||||
0xe4, 0xe8, 0x81, 0xeb, 0xec, 0x50, 0xe9, 0xe7,
|
||||
0x88, 0xe7, 0xe7, 0x8f, 0xe9, 0xec, 0x58, 0xea,
|
||||
0xe8, 0x82, 0xed, 0xeb, 0x68, 0xeb, 0xef, 0x63,
|
||||
0xed, 0xed, 0x71, 0xf0, 0xf0, 0x4b, 0xee, 0xf0,
|
||||
0x54, 0xf2, 0xf1, 0x43, 0xee, 0xee, 0x79, 0xee,
|
||||
0xf1, 0x5d, 0xeb, 0xf1, 0x6c, 0xf5, 0xf3, 0x3b,
|
||||
0xec, 0xef, 0x80, 0xef, 0xf5, 0x46, 0xf1, 0xf6,
|
||||
0x3c, 0xf5, 0xf4, 0x47, 0xed, 0xf0, 0x88, 0xf0,
|
||||
0xef, 0x8f, 0xee, 0xef, 0x97, 0xf5, 0xf5, 0x51,
|
||||
0xf3, 0xf2, 0x76, 0xf1, 0xf5, 0x68, 0xf4, 0xf6,
|
||||
0x5a, 0xf5, 0xf7, 0x63, 0xf7, 0xf5, 0x71, 0xf4,
|
||||
0xf7, 0x6b, 0xf2, 0xf7, 0x71, 0xf7, 0xf6, 0x7a,
|
||||
0xf5, 0xf6, 0x80, 0xf3, 0xf7, 0x8f, 0xf5, 0xf4,
|
||||
0xaf, 0xf6, 0xf8, 0x89, 0xf9, 0xf7, 0x97, 0xf9,
|
||||
0xf9, 0x9f, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xf7,
|
||||
0xf8, 0xf8, 0xf8, 0xf9, 0xf9, 0xf9, 0xfa, 0xfa,
|
||||
0xfa, 0xfb, 0xfb, 0xfb, 0xfc, 0xfc, 0xfc, 0xfd,
|
||||
0xfd, 0xfd, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff,
|
300
examples/screen-cursor/yellow_crab_256_pixels.h
Normal file
|
@ -0,0 +1,300 @@
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41,
|
||||
0x31, 0x41, 0x2e, 0x29, 0x21, 0x0d, 0x0f, 0x0f,
|
||||
0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1d, 0x2a, 0x47, 0x4c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x38, 0x68,
|
||||
0x9b, 0xc6, 0xea, 0xea, 0xee, 0xc7, 0x83, 0x55,
|
||||
0x2d, 0x15, 0x0f, 0x0f, 0x0a, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2e, 0x81, 0x71, 0x4f, 0x07, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3c, 0x67, 0xce, 0xe1,
|
||||
0xe1, 0xe3, 0xe1, 0xe3, 0xe7, 0xe7, 0xe7, 0xea,
|
||||
0xed, 0xd8, 0x8d, 0x5d, 0x25, 0x15, 0x0f, 0x00,
|
||||
0x00, 0x34, 0x5d, 0xf3, 0xf3, 0x64, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x44, 0xad, 0xe2, 0xe2, 0xe2,
|
||||
0xe2, 0xe2, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe3,
|
||||
0xe7, 0xe7, 0xea, 0xe9, 0xd8, 0x97, 0x49, 0x14,
|
||||
0x1c, 0x2b, 0x8e, 0xf3, 0x9c, 0x54, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x79, 0x93, 0x4c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x4b, 0xae, 0xe1, 0xe2, 0xe2, 0xdf,
|
||||
0xdf, 0xe3, 0xe7, 0xe7, 0xe3, 0xe1, 0xe2, 0xe2,
|
||||
0xe1, 0xe3, 0xd9, 0xce, 0xd1, 0xc6, 0xcb, 0xb3,
|
||||
0x62, 0x17, 0x54, 0xd0, 0x7e, 0x06, 0x00, 0x38,
|
||||
0x83, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x6b, 0x7e, 0xee, 0x76, 0x33, 0x05,
|
||||
0x22, 0x09, 0x98, 0xe7, 0xe1, 0xe3, 0xe1, 0xe1,
|
||||
0xe7, 0xea, 0xed, 0xeb, 0xea, 0xe3, 0xe1, 0xe1,
|
||||
0xe1, 0xe2, 0xdb, 0xdb, 0xce, 0xd1, 0xc5, 0xb7,
|
||||
0xc1, 0xbe, 0x65, 0x20, 0x54, 0x00, 0x42, 0xaf,
|
||||
0xe8, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x50, 0x38, 0x85, 0xed, 0xc3, 0x95,
|
||||
0x67, 0x08, 0xea, 0xe7, 0xe7, 0xeb, 0xed, 0xed,
|
||||
0xed, 0xed, 0xee, 0xef, 0xed, 0xeb, 0xea, 0xea,
|
||||
0xe7, 0xe1, 0xe1, 0xe1, 0xe3, 0xdb, 0xce, 0xc5,
|
||||
0xad, 0xa6, 0xb9, 0x89, 0x00, 0x06, 0x92, 0xd8,
|
||||
0xbe, 0x5f, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x05, 0x48, 0x85, 0xd6,
|
||||
0x1a, 0x9d, 0xe7, 0xe7, 0xeb, 0xf3, 0xf1, 0xf0,
|
||||
0xef, 0xef, 0xf0, 0xf3, 0xed, 0xe7, 0xe7, 0xea,
|
||||
0xea, 0xe7, 0xe7, 0xe1, 0xe2, 0xe1, 0xdb, 0xce,
|
||||
0xad, 0x9f, 0x9f, 0x9a, 0x9a, 0x43, 0x59, 0x86,
|
||||
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x86, 0x59,
|
||||
0x5a, 0xe1, 0xea, 0xeb, 0xef, 0xf4, 0xf4, 0xef,
|
||||
0xed, 0xee, 0xee, 0xf0, 0xee, 0xe7, 0xe7, 0xe3,
|
||||
0xe7, 0xe7, 0xe7, 0xea, 0xe7, 0xe1, 0xe3, 0xd9,
|
||||
0xc2, 0xad, 0x9f, 0x9f, 0xae, 0xc6, 0x36, 0x00,
|
||||
0x00, 0x00, 0x07, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x4f, 0x36, 0x00, 0x00, 0x22, 0x7c, 0x18,
|
||||
0xd1, 0xea, 0xed, 0xef, 0xf1, 0xf5, 0xf0, 0xed,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xe7, 0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xea, 0xd9,
|
||||
0xce, 0xc2, 0xa6, 0x9f, 0x9d, 0xb7, 0xc6, 0x00,
|
||||
0x0c, 0x64, 0x7b, 0x41, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x5c, 0x89, 0x76, 0x78, 0x84, 0x8f, 0x26,
|
||||
0xeb, 0xee, 0xed, 0xef, 0xf1, 0xf3, 0xed, 0xe7,
|
||||
0xe7, 0xea, 0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0xa2, 0xeb, 0x8f, 0xee, 0xeb,
|
||||
0xdb, 0xca, 0xb8, 0x9f, 0x9a, 0xa8, 0xd1, 0x82,
|
||||
0x16, 0xe5, 0xd3, 0x47, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x5c, 0xeb, 0xeb, 0xeb, 0xeb, 0x6e, 0x60,
|
||||
0xeb, 0xed, 0xed, 0xec, 0xf0, 0xee, 0xea, 0xce,
|
||||
0xe7, 0xe7, 0xea, 0xea, 0xea, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x99, 0x84, 0x76, 0xed, 0xed,
|
||||
0xe7, 0xe1, 0xce, 0xad, 0x9a, 0x9a, 0xb7, 0xdd,
|
||||
0x00, 0xa9, 0xb0, 0x71, 0x05, 0x05, 0x00, 0x00,
|
||||
0x00, 0x40, 0x54, 0x44, 0x46, 0x48, 0x10, 0x88,
|
||||
0xea, 0xeb, 0xeb, 0xed, 0xed, 0xeb, 0x88, 0x4e,
|
||||
0x82, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0xd7, 0x37, 0x8f, 0xeb, 0xec,
|
||||
0xea, 0xe3, 0xdb, 0xc5, 0xa3, 0x9a, 0x9d, 0xc5,
|
||||
0x39, 0x67, 0x78, 0x4b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x2f, 0x69, 0x6e, 0x70, 0x6f, 0x00, 0x98,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xd4, 0x38, 0x7c,
|
||||
0x3c, 0x82, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x90, 0x37, 0x61, 0xc8, 0xc9,
|
||||
0xeb, 0xe7, 0xe1, 0xda, 0xc2, 0x9d, 0x9d, 0xad,
|
||||
0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x48, 0x6b, 0x71, 0x00, 0xdc,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x84, 0x2d, 0xa3,
|
||||
0x91, 0x24, 0x88, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xeb, 0x61, 0x69, 0x78, 0x66, 0xc3,
|
||||
0xdd, 0xe3, 0xe3, 0xe7, 0xce, 0xae, 0x9d, 0xa3,
|
||||
0x7f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1b, 0x3e, 0x46, 0x6a, 0xa4, 0x05, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x50, 0x2d, 0xe3,
|
||||
0xe3, 0x75, 0x24, 0xb7, 0xe3, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0xcb, 0x48, 0x8f, 0xdd, 0x66, 0x69,
|
||||
0xd7, 0xe3, 0xdb, 0xd9, 0xd1, 0xbb, 0xa5, 0xa3,
|
||||
0xa5, 0x06, 0xdc, 0xf0, 0x9c, 0x28, 0x00, 0x00,
|
||||
0x00, 0x72, 0xbe, 0xa4, 0x99, 0xd6, 0x05, 0xe7,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x42, 0x44, 0xe3,
|
||||
0xe3, 0xdb, 0x59, 0x52, 0xe3, 0xe7, 0xe7, 0xe7,
|
||||
0xea, 0xeb, 0x90, 0x57, 0xd7, 0xeb, 0xb9, 0x6f,
|
||||
0x6f, 0xce, 0xd9, 0xda, 0xd4, 0xb7, 0xa8, 0xae,
|
||||
0xc5, 0x00, 0xe0, 0xe0, 0x7e, 0x00, 0x00, 0x00,
|
||||
0x00, 0x6c, 0xec, 0xed, 0xed, 0xee, 0x05, 0xea,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x35, 0x6d, 0xe3,
|
||||
0xe3, 0xe1, 0xce, 0x4b, 0x91, 0xe7, 0xe7, 0xea,
|
||||
0xea, 0xeb, 0x8f, 0x86, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xb9, 0xd1, 0xd9, 0xd1, 0xc8, 0xae, 0xa5, 0xae,
|
||||
0xc5, 0x00, 0x8e, 0xb0, 0x63, 0x00, 0x00, 0x00,
|
||||
0x00, 0x55, 0x8d, 0x65, 0x48, 0x3c, 0x00, 0x98,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0x44, 0xce, 0xe3,
|
||||
0xe3, 0xe3, 0xe3, 0xce, 0xce, 0xe7, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xc8, 0xcc, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xe7, 0xe7, 0xd4, 0xc7, 0xa8, 0x9e, 0xa3,
|
||||
0xb7, 0x08, 0x09, 0x1f, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x12, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xbe,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xd4, 0xe7, 0xe3,
|
||||
0xe3, 0xe3, 0xe7, 0xe3, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xea, 0xd7, 0xd0, 0xa1, 0x9e, 0xa7,
|
||||
0xba, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xea, 0xe7, 0xe7,
|
||||
0xe3, 0xe3, 0xe7, 0xe7, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xeb, 0xde, 0xd3, 0xab, 0xa1, 0xb2,
|
||||
0xcf, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x00, 0x00, 0x07, 0x53, 0x95, 0x10, 0xbb,
|
||||
0xe3, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xe7, 0xe7,
|
||||
0xe3, 0xe3, 0xe7, 0xe7, 0xe3, 0xea, 0xea, 0xea,
|
||||
0xea, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xec, 0xd3, 0xaf, 0xa2, 0xb4,
|
||||
0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x05, 0x5e, 0x6b, 0x86, 0xc8, 0xeb, 0x4d, 0x7f,
|
||||
0xe1, 0xe7, 0xeb, 0xeb, 0xeb, 0xeb, 0xe7, 0xe7,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0xc1, 0x84, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xeb, 0xeb, 0xe8, 0xd3, 0xa9, 0xa4, 0xc0,
|
||||
0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x12, 0x8e, 0xee, 0xed, 0xed, 0xe9, 0x75, 0x5a,
|
||||
0xe1, 0xea, 0xed, 0xed, 0xed, 0xeb, 0xe7, 0xe7,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0x76, 0x69, 0xed, 0xed, 0xeb, 0xeb, 0xeb, 0xed,
|
||||
0xeb, 0xeb, 0xeb, 0xe8, 0xd3, 0xac, 0xaa, 0xd0,
|
||||
0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3e, 0xc9, 0xe9, 0xd7, 0xd7, 0x98, 0x08,
|
||||
0xe3, 0xeb, 0xed, 0xed, 0xed, 0xed, 0xea, 0xea,
|
||||
0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xea, 0xea, 0xea,
|
||||
0x4b, 0x57, 0xed, 0xed, 0xeb, 0xeb, 0xeb, 0xed,
|
||||
0xeb, 0xeb, 0xed, 0xdc, 0xcd, 0xaa, 0xa4, 0xd0,
|
||||
0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x42, 0x65, 0x57, 0x46, 0x3f, 0x00,
|
||||
0xba, 0xed, 0xed, 0xeb, 0xeb, 0xed, 0xeb, 0xea,
|
||||
0xe7, 0xea, 0xe7, 0xe7, 0x9b, 0x59, 0xda, 0xd4,
|
||||
0x25, 0x70, 0xed, 0xed, 0xed, 0xeb, 0xeb, 0xed,
|
||||
0xed, 0xed, 0xeb, 0xd7, 0xbe, 0x98, 0x52, 0x44,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x59, 0xed, 0xe7, 0xe3, 0xe7, 0xea, 0xeb, 0xeb,
|
||||
0xea, 0xea, 0xe7, 0xe7, 0xe7, 0x48, 0x59, 0x84,
|
||||
0x1d, 0xcc, 0xed, 0xed, 0xed, 0xed, 0xe9, 0xee,
|
||||
0xee, 0xdd, 0xda, 0xd4, 0xae, 0x9d, 0x7a, 0x1b,
|
||||
0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xa1, 0xe3, 0xe3, 0xe7, 0xe7, 0xeb, 0xee,
|
||||
0xeb, 0xeb, 0xea, 0xe7, 0xe7, 0xcc, 0x2d, 0x2d,
|
||||
0x66, 0xeb, 0xed, 0xed, 0xe9, 0xd7, 0xcc, 0xe8,
|
||||
0xe8, 0xd4, 0xd1, 0xc6, 0xae, 0xa6, 0xa6, 0x4d,
|
||||
0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x10, 0xd9, 0xbb, 0xb7, 0xd9, 0xed, 0xef,
|
||||
0xec, 0xed, 0xeb, 0xea, 0xea, 0xea, 0x8b, 0x27,
|
||||
0xea, 0xeb, 0xed, 0xee, 0xde, 0xc8, 0xb9, 0xd8,
|
||||
0xdc, 0xcc, 0xc6, 0xba, 0xa5, 0xad, 0xca, 0x9d,
|
||||
0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3d, 0x3f, 0x91, 0xc5, 0xd8, 0xdc,
|
||||
0xf0, 0xef, 0xee, 0xeb, 0xea, 0xeb, 0xea, 0xa1,
|
||||
0xeb, 0xed, 0xee, 0xec, 0xd6, 0xc3, 0xc3, 0xdc,
|
||||
0xe0, 0xc7, 0xc1, 0xa7, 0x4e, 0x4d, 0x9a, 0xca,
|
||||
0xad, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x3c, 0x66, 0xd9, 0xa5, 0x99, 0xc0,
|
||||
0xc9, 0xdc, 0xf0, 0xec, 0xeb, 0xeb, 0xeb, 0xeb,
|
||||
0xeb, 0xed, 0xee, 0xd8, 0xc3, 0xbe, 0xc3, 0xcf,
|
||||
0xcf, 0xd0, 0xcf, 0xcf, 0x10, 0x00, 0x52, 0xc5,
|
||||
0xe1, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x13, 0xc6, 0xc5, 0x51, 0xa4, 0xab,
|
||||
0xab, 0xb2, 0xc7, 0xe0, 0xe8, 0xe9, 0xeb, 0xeb,
|
||||
0xeb, 0xee, 0xe8, 0xc7, 0xc0, 0xc0, 0xcf, 0xd0,
|
||||
0xd0, 0xd0, 0xac, 0x13, 0x00, 0x00, 0x0c, 0x88,
|
||||
0xdb, 0xdb, 0x56, 0x33, 0x41, 0x30, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x76, 0xe9, 0x52, 0x3e, 0xc0, 0xc7,
|
||||
0xaf, 0xa4, 0xab, 0xc0, 0xd5, 0xdc, 0xde, 0xed,
|
||||
0xee, 0xe8, 0xdc, 0xd0, 0xbf, 0xd2, 0xd5, 0xe4,
|
||||
0xe4, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
|
||||
0x88, 0xd9, 0xba, 0x54, 0xd5, 0x80, 0x05, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x51, 0x99, 0xee, 0x8d, 0x00, 0x00, 0x00, 0x86,
|
||||
0xbe, 0xa4, 0xa4, 0xb0, 0xbf, 0xd0, 0xdc, 0xe8,
|
||||
0xef, 0xf0, 0xe4, 0xd2, 0xd2, 0xe6, 0xe6, 0xbc,
|
||||
0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x51, 0xa1, 0xdd, 0xa1, 0xbe, 0xe0, 0x5e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x59,
|
||||
0x84, 0xeb, 0xd6, 0x33, 0x1e, 0x00, 0x00, 0x00,
|
||||
0x4e, 0x92, 0xaf, 0xa9, 0xaa, 0xd2, 0xe4, 0xf3,
|
||||
0xf3, 0xe4, 0xe5, 0xd2, 0xd3, 0x81, 0x38, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b,
|
||||
0x77, 0x89, 0xda, 0xd7, 0xd6, 0xd8, 0x73, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x4a, 0x7b, 0x5c, 0x35,
|
||||
0x6e, 0xe7, 0x59, 0x2f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x7e, 0xcd, 0xe5, 0xf1, 0xf1,
|
||||
0xf1, 0xd2, 0x96, 0x6c, 0x0c, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58,
|
||||
0xf4, 0x8e, 0xba, 0xcb, 0xd6, 0xc9, 0x81, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x96, 0xf3, 0xd8, 0x75,
|
||||
0xdb, 0x9a, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0c, 0x55, 0x71, 0x55,
|
||||
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0,
|
||||
0xf3, 0xe4, 0xa7, 0xab, 0xc3, 0xc7, 0xa0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xaa, 0xf3, 0xd6, 0xc5,
|
||||
0xe2, 0x8a, 0x56, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xf1,
|
||||
0xf3, 0xe0, 0xa1, 0x95, 0xb0, 0xd0, 0xbc, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe9, 0xe7,
|
||||
0xe2, 0xbb, 0xb7, 0x33, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xf3, 0xe0, 0x78, 0x76, 0x9c, 0xbf, 0xb6, 0x00,
|
||||
0x00, 0x00, 0x00, 0x38, 0xf0, 0xe8, 0xcb, 0xcc,
|
||||
0xdb, 0xe3, 0xea, 0x65, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xf3, 0x72, 0x5f, 0x6f, 0x93, 0xbf, 0xb6, 0x00,
|
||||
0x00, 0x00, 0x0c, 0x50, 0xf0, 0xdc, 0xb2, 0xaf,
|
||||
0xbb, 0xd9, 0xeb, 0xa2, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf3,
|
||||
0xac, 0x37, 0x7e, 0x4b, 0x8e, 0xbc, 0xa0, 0x05,
|
||||
0x00, 0x00, 0x0c, 0x4f, 0xf0, 0xdc, 0xbe, 0x9c,
|
||||
0xa5, 0xd4, 0xed, 0xb2, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xf1,
|
||||
0x4a, 0x72, 0x81, 0x32, 0x8c, 0xbc, 0x97, 0x05,
|
||||
0x00, 0x00, 0x07, 0x71, 0xcf, 0xef, 0x95, 0x81,
|
||||
0x98, 0xb5, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x7b,
|
||||
0x0e, 0xb3, 0x64, 0x3f, 0x8e, 0xbc, 0x73, 0x00,
|
||||
0x00, 0x00, 0x00, 0x6c, 0x7e, 0xf0, 0x93, 0x40,
|
||||
0x95, 0xa1, 0xd8, 0x92, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,
|
||||
0x30, 0x2f, 0x23, 0x5c, 0x96, 0x79, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x4c, 0x4c, 0xe5, 0xb6, 0x00,
|
||||
0x61, 0x95, 0xbe, 0x74, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a,
|
||||
0x00, 0x00, 0x49, 0x80, 0x94, 0x0e, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0xc4, 0x19,
|
||||
0x23, 0x6a, 0xaa, 0x5d, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3a, 0x5b, 0x87, 0x45, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0xf2, 0x0e,
|
||||
0x00, 0x00, 0xa0, 0x2f, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x11, 0x5b, 0x3a, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0xbd, 0x00,
|
||||
0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00,
|
||||
0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
401
examples/screen-cursor/yellow_crab_rgba.h
Normal file
|
@ -0,0 +1,401 @@
|
|||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x05050504, 0x3e393935, 0xab626252, 0xd44b4b3e, 0xff5f5f4c,
|
||||
0xff4c4c43, 0xff43433b, 0xff373734, 0xc01a1a1a, 0x921e1e1e, 0x5e1d1d1d,
|
||||
0x24141414, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x5f323232, 0xb343433f,
|
||||
0xbf68684e, 0xb26e6e50, 0x2f222219, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x1c18180b, 0x9d545430, 0xfd59593b, 0xff8e8f41, 0xffcbcc4f, 0xffe6e75a,
|
||||
0xfff2f45a, 0xfff3f55e, 0xfff3f46f, 0xffe4e574, 0xffaeaf60, 0xff777850,
|
||||
0xfe4a4a38, 0xe12a2a29, 0xa11e1e1e, 0x711f1f1f, 0x22111111, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xde50504a, 0xffb0b16f,
|
||||
0xff9a9b64, 0xff757551, 0xfe3d3d38, 0x0a080807, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2e14140c,
|
||||
0xec5b5b3b, 0xff92923e, 0xffeaec45, 0xfff3f549, 0xfff3f548, 0xfff3f54c,
|
||||
0xfff3f54a, 0xfff3f54b, 0xfff4f550, 0xfff4f655, 0xfff4f653, 0xfff4f65b,
|
||||
0xfff5f669, 0xffebed72, 0xffb7b864, 0xff818254, 0xfd3f3f35, 0xcf2b2b2b,
|
||||
0x631e1e1e, 0x0e0a0a0a, 0x00000000, 0x6f54543f, 0xff808056, 0xfff7f889,
|
||||
0xfff5f68b, 0xf1868759, 0x361b1b13, 0x0e0d0d0a, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a25251e, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4e33331b, 0xf065653b,
|
||||
0xffdcdd45, 0xfff3f542, 0xfff3f541, 0xfff3f542, 0xfff3f541, 0xfff3f544,
|
||||
0xfff3f545, 0xfff3f545, 0xfff3f546, 0xfff3f547, 0xfff3f549, 0xfff3f54c,
|
||||
0xfff4f653, 0xfff4f552, 0xfff3f459, 0xfff1f366, 0xffeeef77, 0xffc6c782,
|
||||
0xff69695b, 0xe9292929, 0x922f2f2a, 0xa2474732, 0xffb8b86d, 0xfff7f888,
|
||||
0xffc9c973, 0xed787849, 0x00000000, 0x2c1b1b10, 0xcf33332a, 0x3910100c,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x2a28291b, 0xe5a5a56f, 0xfdc4c571, 0xe66a6a4a,
|
||||
0x5b383820, 0x0a090906, 0x01000000, 0x2a1c1c0f, 0xef707040, 0xffddde4b,
|
||||
0xfff3f546, 0xfff3f542, 0xfff3f543, 0xfff3f441, 0xfff3f443, 0xfff3f54c,
|
||||
0xfff3f54f, 0xfff3f550, 0xfff3f54d, 0xfff3f547, 0xfff3f543, 0xfff3f542,
|
||||
0xfff3f547, 0xfff3f44c, 0xfff0f24d, 0xffeced4d, 0xffe9eb54, 0xffe8e958,
|
||||
0xffe7e967, 0xffd7d896, 0xff84846a, 0xff2d2d1f, 0xff777746, 0xffe9ea82,
|
||||
0xffa8a863, 0x883f3f24, 0x2e19190f, 0xeb5d5d41, 0xffafb061, 0xea51513d,
|
||||
0x0d070704, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xbc959562, 0xffaaaa61, 0xfff4f572, 0xffa5a556,
|
||||
0xfd54543d, 0xc23e3e2d, 0x6e4f4f22, 0xca3c3c25, 0xffc2c351, 0xfff4f550,
|
||||
0xfff3f549, 0xfff3f54b, 0xfff3f549, 0xfff3f548, 0xfff3f54f, 0xfff3f55b,
|
||||
0xfff4f66a, 0xfff4f668, 0xfff4f558, 0xfff3f54d, 0xfff3f547, 0xfff3f545,
|
||||
0xfff3f545, 0xfff3f544, 0xfff0f246, 0xffeef049, 0xffecee4a, 0xffeaeb4e,
|
||||
0xffe6e74f, 0xffe2e34f, 0xffe1e25d, 0xffdedf70, 0xff89894e, 0xff3a3a24,
|
||||
0xff7a7a47, 0x301d1d0d, 0xe5666641, 0xffd5d66d, 0xfff1f378, 0xff9b9b57,
|
||||
0x992f2f27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x03020202, 0xb473734b, 0xe85a5a3e, 0xffb0b05a, 0xfff4f56c,
|
||||
0xffe0e167, 0xffc1c25e, 0xff909041, 0xff40401b, 0xfff2f457, 0xfff4f553,
|
||||
0xfff3f552, 0xfff4f560, 0xfff4f66b, 0xfff4f56e, 0xfff4f569, 0xfff4f66b,
|
||||
0xfff5f778, 0xfff6f77f, 0xfff5f76e, 0xfff5f662, 0xfff4f660, 0xfff4f65d,
|
||||
0xfff4f654, 0xfff3f54a, 0xfff2f445, 0xfff2f447, 0xfff1f349, 0xffeff14a,
|
||||
0xffeaec4c, 0xffe2e44a, 0xffd9db44, 0xffd6d73f, 0xffdedf5f, 0xffb7b853,
|
||||
0xff232316, 0xe3404026, 0xffc1c165, 0xffeaec74, 0xffe0e170, 0xf383834f,
|
||||
0xf05c5c54, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x03020202, 0x100d0d08, 0x170f0f08, 0xa23e3e2b, 0xff6e6e46,
|
||||
0xffabac58, 0xffebec69, 0xff323219, 0xffd2d345, 0xfff4f652, 0xfff4f656,
|
||||
0xfff4f561, 0xfff6f787, 0xfff6f792, 0xfff6f786, 0xfff5f678, 0xfff5f77b,
|
||||
0xfff6f887, 0xfff7f88d, 0xfff5f770, 0xfff4f557, 0xfff3f552, 0xfff5f660,
|
||||
0xfff5f65f, 0xfff4f657, 0xfff4f553, 0xfff3f545, 0xfff3f542, 0xfff2f446,
|
||||
0xfff0f24b, 0xffe8ea4b, 0xffdcde45, 0xffd3d439, 0xffd2d33b, 0xffcecf45,
|
||||
0xffcccd48, 0xff68692e, 0xff7c7d41, 0xffb8b95f, 0xe3696940, 0x3e1f1f13,
|
||||
0x251f1f17, 0x21161616, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x07060604, 0x09080805, 0x3e323218, 0xdd9b9b49,
|
||||
0xffb8b85a, 0xff7f7f3f, 0xff858631, 0xfff3f54a, 0xfff4f65b, 0xfff4f665,
|
||||
0xfff6f77f, 0xfff8f99c, 0xfff7f896, 0xfff5f77e, 0xfff5f66d, 0xfff5f771,
|
||||
0xfff5f775, 0xfff7f884, 0xfff6f773, 0xfff4f657, 0xfff4f550, 0xfff3f54b,
|
||||
0xfff4f551, 0xfff4f656, 0xfff4f653, 0xfff4f65a, 0xfff4f654, 0xfff3f546,
|
||||
0xfff2f34a, 0xffedef4c, 0xffe4e646, 0xffd9da3e, 0xffd1d338, 0xffd0d139,
|
||||
0xffdbdd4d, 0xffe6e757, 0xff575727, 0xd5393925, 0x1a0f0f07, 0x49171712,
|
||||
0xdb424236, 0xe54e4e4b, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x261a1a17, 0xb86f6f48, 0x8757572c, 0x37212110, 0x271b1b0c, 0x684a4a1d,
|
||||
0xfdb0b049, 0xff2b2b17, 0xffeced56, 0xfff4f65f, 0xfff5f66a, 0xfff5f77a,
|
||||
0xfff7f895, 0xfff8f99d, 0xfff6f887, 0xfff4f669, 0xfff4f55d, 0xfff5f661,
|
||||
0xfff5f768, 0xfff5f664, 0xfff4f65d, 0xfff4f656, 0xfff4f656, 0xfff4f656,
|
||||
0xfff4f658, 0xfff5f65f, 0xfff5f762, 0xfff5f662, 0xfff5f662, 0xfff5f763,
|
||||
0xfff3f55e, 0xffeff14f, 0xffeaeb47, 0xffe3e441, 0xffd7d83a, 0xffccce37,
|
||||
0xffcfd03f, 0xffe1e353, 0xffe2e453, 0xf92b2b15, 0xd842422e, 0xff87875d,
|
||||
0xffa6a66f, 0xcb63634f, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x02010100, 0xff81814e, 0xffb8b856, 0xffa4a44f, 0xffa6a64f, 0xffafaf51,
|
||||
0xffb8b953, 0xff43431d, 0xfff5f666, 0xfff5f771, 0xfff5f66a, 0xfff5f77a,
|
||||
0xfff7f892, 0xfff6f88e, 0xfff4f66d, 0xfff3f557, 0xfff4f553, 0xfff4f65a,
|
||||
0xfff5f664, 0xfff5f661, 0xfff4f659, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f65a, 0xfff5f663, 0xfff5f765, 0xffcccd5d, 0xfff4f566, 0xffbfbf58,
|
||||
0xfff6f772, 0xfff3f560, 0xffeff147, 0xffeaeb43, 0xffdfe13e, 0xffcfd138,
|
||||
0xffc8c93e, 0xffd5d64f, 0xffeaeb50, 0xffb1b247, 0xff48482b, 0xffeff093,
|
||||
0xffe9ea91, 0xff696951, 0x1b111111, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xff7e7e4b, 0xfff5f766, 0xfff5f662, 0xfff5f662, 0xfff5f663,
|
||||
0xff979844, 0xff818234, 0xfff5f662, 0xfff5f76d, 0xfff5f66a, 0xfff5f676,
|
||||
0xfff6f782, 0xfff5f673, 0xfff2f457, 0xffe9ea4c, 0xfff2f44f, 0xfff4f658,
|
||||
0xfff5f660, 0xfff5f65e, 0xfff4f659, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f65a, 0xfff5f662, 0xfff5f766, 0xffc7c85b, 0xffb3b355, 0xffa3a350,
|
||||
0xfff5f76b, 0xfff6f76f, 0xfff3f552, 0xffeff143, 0xffe8ea45, 0xffdadc3e,
|
||||
0xffcbcc42, 0xffcacc44, 0xffdedf4d, 0xffeff15c, 0xff35351f, 0xffd4d574,
|
||||
0xffd9da74, 0xff979861, 0x913b3b3a, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0xff606045, 0xff7b7b48, 0xff696a42, 0xff686842, 0xff6b6b43,
|
||||
0xff454525, 0xffb6b74a, 0xfff4f65d, 0xfff4f664, 0xfff4f666, 0xfff5f66a,
|
||||
0xfff5f66e, 0xfff4f661, 0xffb8b847, 0xff74743d, 0xffb0b146, 0xfff4f654,
|
||||
0xfff4f658, 0xfff4f658, 0xfff4f656, 0xfff4f656, 0xfff4f656, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f662, 0xfff5f766, 0xffedee65, 0xff59593f, 0xffbcbd56,
|
||||
0xfff4f668, 0xfff6f776, 0xfff4f65c, 0xfff3f54c, 0xffeff147, 0xffe7e94c,
|
||||
0xffd6d742, 0xffc9ca41, 0xffd1d344, 0xffe4e64d, 0xff5e5e24, 0xff919140,
|
||||
0xffa0a145, 0xc36b6b3a, 0x552a2a20, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x96545441, 0xa28f904b, 0xa29a9b48, 0xa29c9c4e, 0xb29a9b52,
|
||||
0xf8363625, 0xffc7c95b, 0xfff5f662, 0xfff4f663, 0xfff4f663, 0xfff4f663,
|
||||
0xfff5f668, 0xffeaec5c, 0xff59593b, 0xffabac43, 0xff5d5d3b, 0xffb0b146,
|
||||
0xfff4f653, 0xfff4f654, 0xfff4f552, 0xfff4f655, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f662, 0xfff5f766, 0xffbfc059, 0xff57573e, 0xff888849,
|
||||
0xffe5e561, 0xffe7e871, 0xfff5f663, 0xfff4f551, 0xfff3f54a, 0xffeff054,
|
||||
0xffe2e344, 0xffd0d142, 0xffcccd3e, 0xffdadb44, 0xff676726, 0xc12e2e18,
|
||||
0x51343416, 0x04030301, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x29222213, 0x9a6c6c44, 0xdb8f8f5f, 0xd89b9b64,
|
||||
0xe6272717, 0xffecee77, 0xfff5f663, 0xfff5f663, 0xfff4f663, 0xfff5f663,
|
||||
0xfff5f768, 0xffb0b050, 0xff494939, 0xffd7d848, 0xffc0c146, 0xff3c3c31,
|
||||
0xffb6b747, 0xfff4f551, 0xfff4f54f, 0xfff4f654, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f661, 0xfff5f766, 0xff86874a, 0xff93934c, 0xffa8a851,
|
||||
0xff8f8f4d, 0xffdfe06a, 0xfff1f362, 0xfff3f54e, 0xfff3f54c, 0xfff3f456,
|
||||
0xffe9eb49, 0xffd9da45, 0xffcfd042, 0xffd7d844, 0xffb3b43e, 0xed151512,
|
||||
0xdb3c3c30, 0xdb38382c, 0xdb313127, 0xd52c2c25, 0x00000000, 0x00000000,
|
||||
0x40262619, 0xcd4e4e3a, 0xf95d5d42, 0xff6d6d47, 0xff919150, 0xffd2d366,
|
||||
0xff404020, 0xfff5f662, 0xfff5f664, 0xfff5f665, 0xfff5f665, 0xfff5f665,
|
||||
0xfff5f767, 0xff707043, 0xff4b4b39, 0xfff1f34b, 0xfff3f54b, 0xffa1a241,
|
||||
0xff3d3d31, 0xffdedf4c, 0xfff3f54d, 0xfff4f655, 0xfff4f657, 0xfff4f657,
|
||||
0xfff4f659, 0xfff5f661, 0xffe3e561, 0xff6c6c44, 0xffbebe57, 0xfff1f263,
|
||||
0xff8b8b4a, 0xff939350, 0xffeaec5f, 0xfff3f44c, 0xfff1f24b, 0xfff1f254,
|
||||
0xffecee53, 0xffe0e24b, 0xffd5d74b, 0xffd8d94c, 0xffd8d94d, 0xff3b3c22,
|
||||
0xfff0f180, 0xfff2f382, 0xffcaca75, 0x8f4e4e34, 0x02010101, 0x00000000,
|
||||
0x1e17170d, 0xff9b9c5b, 0xffdedf6c, 0xffd1d164, 0xffc7c861, 0xffeeef6d,
|
||||
0xff40401f, 0xfff4f658, 0xfff5f666, 0xfff5f666, 0xfff5f665, 0xfff5f666,
|
||||
0xfff5f767, 0xff616140, 0xff67673c, 0xfff3f54b, 0xfff3f54b, 0xfff1f24a,
|
||||
0xff7d7e3e, 0xff76763d, 0xfff2f44d, 0xfff4f656, 0xfff4f658, 0xfff4f658,
|
||||
0xfff4f659, 0xfff5f661, 0xffbebf58, 0xff7c7c48, 0xffeaec61, 0xfff5f664,
|
||||
0xffe1e25f, 0xff98984f, 0xff95954a, 0xffebec4c, 0xffeef04a, 0xffedee52,
|
||||
0xffe9eb5d, 0xffdfe14d, 0xffd9da52, 0xffdbdd4e, 0xffe4e64f, 0xff1a1a15,
|
||||
0xffebec80, 0xffeced82, 0xffabac68, 0x431c1c14, 0x00000000, 0x00000000,
|
||||
0x04030302, 0xff939359, 0xfff6f775, 0xfff5f66f, 0xfff4f56e, 0xfff4f570,
|
||||
0xff3e3f1f, 0xfff4f559, 0xfff5f668, 0xfff5f668, 0xfff5f667, 0xfff5f766,
|
||||
0xfff5f768, 0xff54543d, 0xff979842, 0xfff3f54c, 0xfff3f54b, 0xfff3f54a,
|
||||
0xffebed4d, 0xff6c6d3d, 0xffbebf46, 0xfff4f657, 0xfff4f658, 0xfff4f659,
|
||||
0xfff4f65a, 0xfff5f661, 0xffbebe58, 0xffb2b255, 0xfff5f764, 0xfff5f664,
|
||||
0xfff5f664, 0xfff5f765, 0xffdcdd59, 0xffebed50, 0xffeef04d, 0xffeaec53,
|
||||
0xffe6e765, 0xffd9da4c, 0xffd4d651, 0xffdadb49, 0xffe2e44d, 0xff363614,
|
||||
0xffb6b767, 0xffdadb76, 0xff878757, 0x612a2a21, 0x00000000, 0x00000000,
|
||||
0x00000000, 0xeb76764f, 0xffbabb64, 0xff8c8c4d, 0xff6b6b3f, 0xff5e5e3c,
|
||||
0xff10100c, 0xffc9ca5c, 0xfff5f769, 0xfff5f768, 0xfff5f767, 0xfff5f767,
|
||||
0xfff5f768, 0xff6a6a42, 0xffeaec4e, 0xfff3f54d, 0xfff3f54b, 0xfff3f54b,
|
||||
0xfff4f54e, 0xffebed4d, 0xffe9eb4b, 0xfff4f658, 0xfff4f659, 0xfff4f659,
|
||||
0xfff4f65a, 0xfff5f661, 0xffe4e562, 0xffe8ea64, 0xfff5f765, 0xfff5f664,
|
||||
0xfff5f664, 0xfff5f767, 0xfff5f65e, 0xfff4f656, 0xfff1f352, 0xffedee5a,
|
||||
0xffe5e672, 0xffd4d550, 0xffcfd050, 0xffd6d84a, 0xffdfe14d, 0xff3d3d18,
|
||||
0x9c42422b, 0xaf4c4c32, 0xab3f3f32, 0x73383837, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x8b434335, 0xaf42423d, 0x712a2a2a, 0x411c1c1a, 0x3113130f,
|
||||
0xff1e1e1d, 0xffdfe16e, 0xfff5f769, 0xfff5f768, 0xfff5f767, 0xfff5f767,
|
||||
0xfff5f768, 0xffedee5e, 0xfff4f550, 0xfff3f54e, 0xfff3f54b, 0xfff3f54c,
|
||||
0xfff4f54f, 0xfff3f54e, 0xfff3f54d, 0xfff4f659, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65b, 0xfff5f662, 0xfff5f767, 0xfff5f768, 0xfff5f765, 0xfff5f764,
|
||||
0xfff5f765, 0xfff5f767, 0xfff5f65f, 0xfff4f65c, 0xfff4f55a, 0xffeef063,
|
||||
0xffe4e581, 0xffd3d458, 0xffcecf52, 0xffd7d857, 0xffe1e357, 0xff3d3d1a,
|
||||
0x2316160d, 0x03020202, 0x03020202, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05030303, 0x765b5b51,
|
||||
0xff2f2f25, 0xfff5f665, 0xfff5f763, 0xfff5f768, 0xfff5f768, 0xfff5f768,
|
||||
0xfff5f768, 0xfff5f660, 0xfff4f551, 0xfff4f54f, 0xfff3f54c, 0xfff3f54c,
|
||||
0xfff4f54f, 0xfff4f54f, 0xfff3f54e, 0xfff4f659, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65b, 0xfff5f662, 0xfff5f768, 0xfff5f768, 0xfff5f765, 0xfff5f764,
|
||||
0xfff5f665, 0xfff5f767, 0xfff5f660, 0xfff5f660, 0xfff4f661, 0xffeff16d,
|
||||
0xffe5e68c, 0xffd4d562, 0xffcfd056, 0xffd9db5e, 0xffe7e879, 0xff3b3b21,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x06030303, 0x48313130, 0x783f3f38, 0xe476765c, 0xffc3c35f,
|
||||
0xff454622, 0xffe1e248, 0xfff3f54c, 0xfff5f763, 0xfff5f768, 0xfff5f768,
|
||||
0xfff5f768, 0xfff5f661, 0xfff4f552, 0xfff4f551, 0xfff3f54d, 0xfff3f54e,
|
||||
0xfff4f54f, 0xfff4f54f, 0xfff3f54e, 0xfff4f65a, 0xfff4f65a, 0xfff4f65a,
|
||||
0xfff4f65c, 0xfff5f763, 0xfff5f769, 0xfff5f769, 0xfff5f766, 0xfff5f765,
|
||||
0xfff5f765, 0xfff5f767, 0xfff5f661, 0xfff5f661, 0xfff5f664, 0xfff1f273,
|
||||
0xffe7e890, 0xffd5d66b, 0xffd1d25e, 0xffddde66, 0xffebec8a, 0xff24241c,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x6c3e3e3e, 0xf17f7f72, 0xff959560, 0xffb5b65b, 0xffe6e765, 0xfff5f768,
|
||||
0xff6f7034, 0xffadae39, 0xfff3f548, 0xfff4f658, 0xfff5f769, 0xfff5f769,
|
||||
0xfff5f769, 0xfff5f663, 0xfff4f655, 0xfff4f653, 0xfff3f54f, 0xfff4f550,
|
||||
0xfff4f550, 0xfff4f54f, 0xfff4f54f, 0xfff4f65c, 0xfff4f65b, 0xfff4f65b,
|
||||
0xffddde57, 0xffb2b354, 0xfff5f769, 0xfff5f769, 0xfff5f767, 0xfff5f766,
|
||||
0xfff5f766, 0xfff5f769, 0xfff5f663, 0xfff5f663, 0xfff5f667, 0xfff1f376,
|
||||
0xffe7e78f, 0xffd5d674, 0xffd1d268, 0xffe1e273, 0xfff0f19e, 0xfa242422,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x90464639, 0xffb8b868, 0xfff6f773, 0xfff5f76c, 0xfff4f568, 0xfff1f366,
|
||||
0xffa6a749, 0xff7d7e29, 0xfff3f548, 0xfff4f659, 0xfff5f76a, 0xfff5f76a,
|
||||
0xfff5f76b, 0xfff5f767, 0xfff4f658, 0xfff4f656, 0xfff4f551, 0xfff4f652,
|
||||
0xfff4f551, 0xfff4f550, 0xfff4f550, 0xfff4f65d, 0xfff4f65c, 0xfff4f65c,
|
||||
0xff9fa04b, 0xff91914d, 0xfff5f76a, 0xfff5f76a, 0xfff5f768, 0xfff5f767,
|
||||
0xfff5f766, 0xfff5f76a, 0xfff5f765, 0xfff5f765, 0xfff5f769, 0xfff1f279,
|
||||
0xffe5e690, 0xffd4d57e, 0xffd3d578, 0xffe4e684, 0xffd6d6a3, 0xbf090909,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x05040402, 0xec616142, 0xffe4e56c, 0xfff3f46b, 0xffeff167, 0xffeef065,
|
||||
0xffcacb58, 0xff43431b, 0xfff3f54b, 0xfff5f765, 0xfff5f76a, 0xfff5f76a,
|
||||
0xfff5f76c, 0xfff5f76c, 0xfff4f65d, 0xfff4f65a, 0xfff4f654, 0xfff4f656,
|
||||
0xfff4f652, 0xfff4f550, 0xfff3f450, 0xfff4f65d, 0xfff4f65c, 0xfff4f65d,
|
||||
0xff6e6f41, 0xff7c7c47, 0xfff5f76b, 0xfff5f76b, 0xfff5f769, 0xfff5f768,
|
||||
0xfff5f767, 0xfff5f76b, 0xfff5f769, 0xfff5f769, 0xfff5f66d, 0xfff0f17b,
|
||||
0xffe3e491, 0xffd3d477, 0xffd2d46c, 0xffe6e780, 0xffa7a78c, 0x9c191919,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x602c2c1c, 0xff626241, 0xff8c8c4f, 0xff7c7c48, 0xff676843,
|
||||
0xa8636335, 0xff383820, 0xffe2e35c, 0xfff5f76c, 0xfff5f76a, 0xfff5f764,
|
||||
0xfff5f766, 0xfff6f770, 0xfff5f663, 0xfff5f660, 0xfff4f658, 0xfff4f65a,
|
||||
0xfff4f654, 0xfff4f551, 0xffcccc4b, 0xff818145, 0xffeff15b, 0xffeaec5a,
|
||||
0xff3d3d36, 0xff999a4f, 0xfff5f76c, 0xfff5f76d, 0xfff5f76a, 0xfff5f769,
|
||||
0xfff5f768, 0xfff6f76d, 0xfff5f76d, 0xfff4f56a, 0xfff2f464, 0xffeced65,
|
||||
0xffdedf6a, 0xffcbcc5b, 0xff77773f, 0xff6a6a41, 0xff383825, 0x65262623,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0x973b3b28, 0x64373720, 0x43262615, 0x06040402,
|
||||
0x0b0a0a07, 0x98373722, 0xff7f7f40, 0xfff6f76d, 0xfff4f657, 0xfff4f54e,
|
||||
0xfff4f551, 0xfff5f660, 0xfff5f769, 0xfff5f767, 0xfff4f65e, 0xfff5f660,
|
||||
0xfff4f657, 0xfff4f653, 0xfff2f453, 0xff6e6e42, 0xff808143, 0xffadae4e,
|
||||
0xff323231, 0xffe7e862, 0xfff6f76d, 0xfff6f76d, 0xfff5f66b, 0xfff3f568,
|
||||
0xfff2f467, 0xfff4f670, 0xfff4f671, 0xfff0f162, 0xffeeef55, 0xffe8ea58,
|
||||
0xffdbdc4f, 0xffd2d342, 0xffacad40, 0xff4d4d39, 0xf4333329, 0x7e48482f,
|
||||
0x04030303, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05040404, 0x09080806,
|
||||
0x02010101, 0x110b0b06, 0xe92a2a1b, 0xffd2d357, 0xfff3f54b, 0xfff3f54b,
|
||||
0xfff3f54f, 0xfff4f655, 0xfff5f769, 0xfff6f771, 0xfff5f768, 0xfff5f767,
|
||||
0xfff4f65b, 0xfff4f655, 0xfff4f656, 0xffe4e55b, 0xff494938, 0xff474733,
|
||||
0xff8c8c47, 0xfff5f666, 0xfff6f76f, 0xfff5f66e, 0xfff2f36b, 0xffebed67,
|
||||
0xffe9ea64, 0xfff0f173, 0xfff2f375, 0xffeced5f, 0xffeaeb54, 0xffe6e756,
|
||||
0xffdadc4d, 0xffd6d73e, 0xffd6d73d, 0xff727238, 0xfe555541, 0x68393925,
|
||||
0x03020201, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x4b1b1b11, 0xff444420, 0xffeeef4c, 0xffe1e34a,
|
||||
0xffdedf4b, 0xfff0f152, 0xfff3f56b, 0xfff6f77c, 0xfff6f777, 0xfff6f770,
|
||||
0xfff5f663, 0xfff4f659, 0xfff4f659, 0xfff5f660, 0xffb9ba50, 0xff40402c,
|
||||
0xfff5f660, 0xfff5f768, 0xfff5f770, 0xfff3f56f, 0xffedef6b, 0xffe3e565,
|
||||
0xffe1e263, 0xffebed75, 0xffeff17c, 0xffe9eb63, 0xffe6e854, 0xffdedf53,
|
||||
0xffd4d64c, 0xffdcdd43, 0xffe3e53d, 0xffd1d240, 0xff505034, 0x5d242418,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x88202013, 0xff5f5f2b, 0xff62623a,
|
||||
0xffc2c347, 0xffe7e94c, 0xffeaec6e, 0xffeff07d, 0xfff3f57e, 0xfff5f77a,
|
||||
0xfff6f772, 0xfff5f662, 0xfff4f65d, 0xfff5f661, 0xfff5f65f, 0xffd0d158,
|
||||
0xfff5f662, 0xfff5f76a, 0xfff4f571, 0xfff1f26f, 0xffeaeb6c, 0xffe1e267,
|
||||
0xffe1e366, 0xffebec78, 0xffebed7f, 0xffe5e673, 0xffe3e45e, 0xffd6d753,
|
||||
0xff707039, 0xff757533, 0xffcecf45, 0xffedee43, 0xffd9db42, 0xfc525230,
|
||||
0x5725251a, 0x00000000, 0x03020202, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x02010100, 0x46343415, 0xff5c5c38, 0xff8c8c41,
|
||||
0xffedef4e, 0xffd4d650, 0xffcacb64, 0xffe1e273, 0xffe6e770, 0xffeeef79,
|
||||
0xfff3f47f, 0xfff5f675, 0xfff5f663, 0xfff5f663, 0xfff5f661, 0xfff5f662,
|
||||
0xfff5f764, 0xfff5f76d, 0xfff3f573, 0xffeced70, 0xffe3e46d, 0xffddde69,
|
||||
0xffe1e36c, 0xffe8ea7c, 0xffe7e87f, 0xffe3e47d, 0xffe5e67a, 0xffe4e576,
|
||||
0xff494927, 0xff1b1b17, 0xff787840, 0xffe4e549, 0xfff0f244, 0xffd6d842,
|
||||
0xfc39392c, 0xb039392e, 0x71282827, 0x3c242424, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x08070703, 0x6635351c, 0xff4a4a35, 0xffe4e655,
|
||||
0xffe7e852, 0xff737443, 0xffd4d56d, 0xffdadb6c, 0xffd6d766, 0xffdbdc66,
|
||||
0xffe5e671, 0xffedee7f, 0xfff1f276, 0xfff3f468, 0xfff4f665, 0xfff5f766,
|
||||
0xfff5f769, 0xfff4f571, 0xfff1f276, 0xffe8e974, 0xffddde71, 0xffdcde71,
|
||||
0xffe3e479, 0xffe9ea82, 0xffe8e982, 0xffe8e984, 0xffd5d67e, 0xf444442c,
|
||||
0x630c0c0a, 0x4018180f, 0xd8464631, 0xffb8b849, 0xffeff147, 0xffeef045,
|
||||
0xff7a7a37, 0xff52523d, 0xff626250, 0xf8545454, 0x140b0b0b, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x2f232312, 0xec51513a, 0xffa2a251, 0xfff0f167,
|
||||
0xff797941, 0xff606043, 0xffdbdc70, 0xffe2e370, 0xffd4d669, 0xffcfd164,
|
||||
0xffd5d667, 0xffdedf75, 0xffe7e885, 0xffedee79, 0xfff1f36e, 0xfff4f56d,
|
||||
0xfff5f673, 0xfff3f477, 0xffeff07d, 0xffe6e781, 0xffe0e182, 0xffe4e587,
|
||||
0xffe9ea88, 0xffedee89, 0xffedee88, 0xffa5a663, 0xf42f2f22, 0x591f1f1a,
|
||||
0x00000000, 0x00000000, 0x190b0b06, 0xd9484833, 0xffb8b947, 0xfff0f24d,
|
||||
0xffdfe055, 0xff767647, 0xffe7e784, 0xffb1b183, 0x953e3e3d, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x100b0b08,
|
||||
0x00000000, 0x0d0c0c05, 0xc4727340, 0xffcbcc61, 0xfff3f46f, 0xffb6b761,
|
||||
0xff2b2b2a, 0x89333323, 0xf5313120, 0xffb3b45c, 0xffdfe06f, 0xffd4d569,
|
||||
0xffd0d168, 0xffd3d46f, 0xffdbdc7c, 0xffe6e783, 0xffeeef7f, 0xfff2f47c,
|
||||
0xfff4f57d, 0xfff2f483, 0xffeef089, 0xffe8e988, 0xffe7e98d, 0xffedee93,
|
||||
0xfff0f196, 0xffdbdc85, 0xff5d5e3c, 0xc022221a, 0x200c0c09, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x512e2e18, 0xff737341, 0xffcbcc52,
|
||||
0xfff0f161, 0xffd2d35c, 0xffddde6c, 0xffeff184, 0xfc7f7f6e, 0x100a0a0a,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x48222219, 0xe464644c,
|
||||
0x87343428, 0xb07b7b3c, 0xffb2b354, 0xfff5f767, 0xffe9ea68, 0xff52523c,
|
||||
0xcb4a4a47, 0x02010101, 0x4628281d, 0xdc2b2b1d, 0xff6f6f3b, 0xffbbbc60,
|
||||
0xffd9da6f, 0xffd5d673, 0xffd9da7d, 0xffe5e687, 0xffeff08a, 0xfff2f389,
|
||||
0xfff3f48a, 0xfff0f18c, 0xffeced8b, 0xffeaea8b, 0xffeaeb92, 0xffb2b374,
|
||||
0xff5c5c41, 0xec272724, 0x75232321, 0x06040403, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xab4b4b39, 0xffa1a261, 0xffb5b555,
|
||||
0xffeff15b, 0xffedef67, 0xffeaeb6c, 0xffeaec73, 0xff9b9b6d, 0x55262625,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x52202018, 0xff6c6d4f, 0xffabab70,
|
||||
0xff818152, 0xff54543c, 0xff9a9a46, 0xfff2f453, 0xff7e7f44, 0xf551513f,
|
||||
0x4c31312b, 0x00000000, 0x02010101, 0x352c2c1e, 0x74242418, 0xcb1e1e16,
|
||||
0xff535431, 0xffadae68, 0xffe4e592, 0xffeeef8e, 0xfff4f590, 0xfff5f691,
|
||||
0xfff3f491, 0xffe6e78a, 0xffc6c778, 0xff94945d, 0xff43432f, 0xbb21211c,
|
||||
0x541a1a19, 0x0d060606, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3211110e, 0xff80805a, 0xfff5f695, 0xffbebe6f,
|
||||
0xffdfe055, 0xffe7e968, 0xffe8e96a, 0xffe5e66f, 0xffadae6e, 0x46171715,
|
||||
0x00000000, 0x00000000, 0x00000000, 0xd2363629, 0xffc2c374, 0xfff8f98f,
|
||||
0xffeeef71, 0xffa1a143, 0xffeff148, 0xffc8c943, 0xea494931, 0x1e16160d,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x05040403, 0x04030302,
|
||||
0x4d14140e, 0xbd1f1f1b, 0xff444433, 0xff78784e, 0xff9c9c61, 0xff7b7b4e,
|
||||
0xff3f3f2d, 0xe623231b, 0xbf161611, 0x8d171712, 0x3d171711, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xad2c2c25, 0xffcbcc7a, 0xfff6f88e, 0xffedee87,
|
||||
0xffd6d854, 0xffd7d866, 0xffe1e36b, 0xffe4e574, 0xffcbcc7d, 0x4e131313,
|
||||
0x00000000, 0x00000000, 0x07050503, 0xf73a3a2b, 0xffd4d477, 0xfff7f888,
|
||||
0xffeaeb6a, 0xffe3e449, 0xfff3f543, 0xffbabb3f, 0xff7e7e3d, 0x86404026,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x3f1a1a19, 0x5f080808, 0x5f030303, 0x5f0a0a0a,
|
||||
0x3f1d1d18, 0x08050504, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xfc525240, 0xfff3f48b, 0xfff8f98d, 0xffedef83,
|
||||
0xffcdcf59, 0xffc2c363, 0xffd5d670, 0xffe3e47f, 0xffddde88, 0x9d2a2a2a,
|
||||
0x00000000, 0x00000000, 0x03020201, 0xfb36362b, 0xfff4f483, 0xfff6f781,
|
||||
0xfff2f46a, 0xfff1f355, 0xfff3f544, 0xffe1e145, 0xffdee04e, 0xf756563d,
|
||||
0x341e1e12, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x05040403, 0xff838358, 0xfff8f98d, 0xfff8f98d, 0xffebec7d,
|
||||
0xffa7a851, 0xffa2a353, 0xffc8c971, 0xffdfe080, 0xffdadb88, 0xa7292929,
|
||||
0x00000000, 0x00000000, 0x5e373721, 0xff59593e, 0xfff6f784, 0xfff0f27a,
|
||||
0xffe7e965, 0xffe7e961, 0xffeeef48, 0xfff3f54e, 0xfff4f65a, 0xff8a8a4c,
|
||||
0x681c1c17, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x01000000, 0xf1828256, 0xfff8f98d, 0xfff8f98d, 0xff9b9c5e,
|
||||
0xff82834d, 0xff97984e, 0xffbfc06e, 0xffdbdc80, 0xffd9da87, 0x8a212121,
|
||||
0x00000000, 0x00000000, 0xb341412f, 0xff74744c, 0xfff4f683, 0xffebed77,
|
||||
0xffdadc65, 0xffd5d769, 0xffe2e348, 0xfff0f252, 0xfff5f662, 0xffcdce60,
|
||||
0x7f22221d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xe2828255, 0xfff8f98f, 0xffd7d77f, 0xff585840,
|
||||
0xffb1b169, 0xff6c6c3e, 0xffbbbc6e, 0xffdbdb83, 0xffcdce81, 0xb13b3b3b,
|
||||
0x00000000, 0x00000000, 0xbf444433, 0xff72724d, 0xfff4f584, 0xffeff079,
|
||||
0xffddde6d, 0xffcccd77, 0xffd2d44d, 0xffe8ea56, 0xfff4f66a, 0xffdbdc65,
|
||||
0xba2a2a27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xf7707050, 0xfff2f390, 0xff686848, 0xff9b9b5f,
|
||||
0xffabac6d, 0xff525231, 0xffb7b86e, 0xffdadb84, 0xffbebf7d, 0x893c3c3c,
|
||||
0x00000000, 0x00000000, 0xbf404032, 0xff9b9b60, 0xffe9ea81, 0xfff5f67e,
|
||||
0xffc7c867, 0xffabab6e, 0xffc7c858, 0xffdcde59, 0xfff1f36c, 0xffd7d867,
|
||||
0xbc2c2c28, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xd74d4d3e, 0xffa8a86f, 0xfc46463d, 0xe6d8d994,
|
||||
0xff8c8c60, 0xff606039, 0xffb7b86d, 0xffdedf8a, 0xfc9b9b71, 0x3b191919,
|
||||
0x00000000, 0x00000000, 0x87323227, 0xff95955f, 0xffadae6a, 0xfff7f885,
|
||||
0xffc0c06d, 0xff606048, 0xffc5c663, 0xffd0d15a, 0xffeaeb6f, 0xffbdbe62,
|
||||
0xa92f2f27, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x803e3e39, 0xff2d2d2c, 0xa8535351, 0x5b545442,
|
||||
0xff515143, 0xff82824e, 0xffc0c177, 0xffa3a46e, 0x9f34342f, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x1e0d0d0a, 0xfc6e6e51, 0xff6d6d50, 0xfff0f18f,
|
||||
0xffdadb89, 0xff353531, 0xff87884c, 0xffc8c861, 0xffe0e171, 0xffa1a25e,
|
||||
0xa7313128, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x0a070707, 0xbd585858, 0x00000000, 0x482f2f2e,
|
||||
0xff6b6b5f, 0xffa8a880, 0xffbebf96, 0xf443433d, 0x2c0c0c0c, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x2714140e, 0xf678785a, 0xffaaaa79,
|
||||
0xffe4e49b, 0xff4b4b42, 0xde515143, 0xff959657, 0xffd7d879, 0xff7e7e53,
|
||||
0x8f282822, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x02010101, 0x00000000, 0xa25a5a5a,
|
||||
0xff7f7f7f, 0xffb0b0b0, 0xfb676767, 0x5f232323, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x9b3e3e33, 0xffabab7f,
|
||||
0xfff5f5af, 0xff44443f, 0x4a333329, 0xc3292920, 0xfecccd87, 0xfb50503e,
|
||||
0x240c0c0a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x69484848,
|
||||
0xb2787878, 0x975a5a5a, 0x1f0f0f0f, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1e10100c, 0xf948483d,
|
||||
0xffdbdca4, 0xc7272725, 0x00000000, 0x01000000, 0x9a434333, 0xd5363631,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x350e0e0c,
|
||||
0xee484841, 0xb3262625, 0x00000000, 0x00000000, 0x1e040404, 0xb53c3c38,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x251a1a19, 0x97212121, 0x0d040404, 0x00000000, 0x00000000, 0x03010101,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
|
7
examples/screen-dma-coalesce/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-dma-coalesce.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
223
examples/screen-dma-coalesce/main.c
Normal file
|
@ -0,0 +1,223 @@
|
|||
/*
|
||||
* Demonstration for DMA coalescing in SVGA devices which support SVGA
|
||||
* Screen Object.
|
||||
*
|
||||
* All DMA operations, including Screen Object DMAs and legacy
|
||||
* "UPDATE" commands" include extra guarantees on hosts which support
|
||||
* the Screen Object extension. DMAs must occur when and only when
|
||||
* the guest specifies them in the FIFO. All DMA side-effects must
|
||||
* occur in FIFO order, and at any FENCE the guest is guaranteed that
|
||||
* all DMAs prior to that fence have taken place.
|
||||
*
|
||||
* So, this is fairly strict compared to pre-Screen-Object hosts, but
|
||||
* the SVGA device still has room to optimize away redundant DMA
|
||||
* operations that occur between two FENCEs. If the guest asks the
|
||||
* SVGA device to perform the same DMA 100 times, there is no way to
|
||||
* tell the difference between performing one DMA and performing 100
|
||||
* DMAs if they all occur at exactly the same instant.
|
||||
*
|
||||
* Many things can act as a barrier for this optimization: other types
|
||||
* of DMA operations, including readback. DMA from a different
|
||||
* GMRFB. DMA with incompatible source/dest offsets. FENCEs or legacy
|
||||
* SYNCs.
|
||||
*
|
||||
* As a simple demonstration of this feature, this demo runs three
|
||||
* timed tests:
|
||||
*
|
||||
* - One DMA followed by a fence
|
||||
* - Ten overlapping DMAs, followed by one fence
|
||||
* - Ten overlapping DMAs, each followed by a fence
|
||||
*
|
||||
* If this optimization is working correctly, the first two tests
|
||||
* should take nearly the same amount of time, with the third test
|
||||
* running at about 1/10th the speed.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "vmbackdoor.h"
|
||||
#include "math.h"
|
||||
#include "mt19937ar.h"
|
||||
|
||||
#define GMRID_SCREEN_DRAW 0
|
||||
#define GMRID_NOISE 1
|
||||
|
||||
typedef struct {
|
||||
int numDMAs;
|
||||
Bool fencePerDMA;
|
||||
Bool finalFence;
|
||||
const char *text;
|
||||
} TestInfo;
|
||||
|
||||
TestInfo testInfoArray[] = {
|
||||
{
|
||||
1, FALSE, TRUE,
|
||||
"One DMA followed by one Fence."
|
||||
},
|
||||
{
|
||||
10, FALSE, TRUE,
|
||||
"Ten DMAs followed by one Fence.\nShould be nearly the same as #1."
|
||||
},
|
||||
{
|
||||
10, TRUE, FALSE,
|
||||
"Ten DMAs, each followed by a Fence.\nShould take 10x as long as #1."
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* allocNoise --
|
||||
*
|
||||
* Allocates a new GMR, and fills it with random noise.
|
||||
*/
|
||||
|
||||
static void
|
||||
allocNoise(void)
|
||||
{
|
||||
const uint32 numPages = 500;
|
||||
const uint32 numWords = numPages * PAGE_SIZE / sizeof(uint32);
|
||||
|
||||
PPN pages = GMR_DefineContiguous(GMRID_NOISE, numPages);
|
||||
uint32 *ptr = PPN_POINTER(pages);
|
||||
int i;
|
||||
|
||||
init_genrand(0);
|
||||
|
||||
for (i = 0; i < numWords; i++) {
|
||||
ptr[i] = genrand_int32();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* prepareNoiseRect --
|
||||
*
|
||||
* Prepare some noise as the source for a blit.
|
||||
* This defines the GMRFB, and generates a random source origin.
|
||||
*/
|
||||
|
||||
static void
|
||||
prepareNoiseRect(SVGASignedPoint *origin) // OUT
|
||||
{
|
||||
const uint32 bytesPerLine = 512;
|
||||
static const SVGAGMRImageFormat format = {{{ 32, 24 }}};
|
||||
const SVGAGuestPtr gPtr = { GMRID_NOISE, 0 };
|
||||
const uint32 rand = genrand_int32();
|
||||
|
||||
Screen_DefineGMRFB(gPtr, bytesPerLine, format);
|
||||
|
||||
origin->x = rand & 0x7F;
|
||||
origin->y = (rand >> 8) & 0x7F;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(GMRID_SCREEN_DRAW);
|
||||
allocNoise();
|
||||
|
||||
/*
|
||||
* Define a screen.
|
||||
*/
|
||||
|
||||
SVGAScreenObject myScreen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 800, 600 },
|
||||
.root = { 0, 0 },
|
||||
};
|
||||
Screen_Define(&myScreen);
|
||||
|
||||
/*
|
||||
* Draw some intro text.
|
||||
*/
|
||||
|
||||
ScreenDraw_SetScreen(myScreen.id, myScreen.size.width, myScreen.size.height);
|
||||
Console_Clear();
|
||||
ScreenDraw_Border(0, 0, myScreen.size.width, myScreen.size.height, 0xFF0000, 1);
|
||||
Console_WriteString("Screen DMA Coalescing test.\n"
|
||||
"\n"
|
||||
"This example demonstrates an optimization which "
|
||||
"eliminates redundant DMA operations.\n"
|
||||
"The three tests below each issue a different "
|
||||
"combination of DMAs and Fences. The text\n"
|
||||
"below explains the expected peformance of each test.\n");
|
||||
|
||||
/*
|
||||
* Main loop. Alternate between the three tests, timing each.
|
||||
*/
|
||||
|
||||
while (1) {
|
||||
int testNum;
|
||||
const int numRepeats = 200;
|
||||
|
||||
for (testNum = 0; testNum < arraysize(testInfoArray); testNum++) {
|
||||
TestInfo *testInfo = &testInfoArray[testNum];
|
||||
VMTime before, after;
|
||||
int repeat;
|
||||
|
||||
SVGA_SyncToFence(SVGA_InsertFence());
|
||||
VMBackdoor_GetTime(&before);
|
||||
|
||||
for (repeat = 0; repeat < numRepeats; repeat++) {
|
||||
int numDMA;
|
||||
SVGASignedPoint blitOrigin;
|
||||
|
||||
/*
|
||||
* To be coalesced, the DMAs below need the same offset
|
||||
* between source and dest.
|
||||
*/
|
||||
prepareNoiseRect(&blitOrigin);
|
||||
|
||||
for (numDMA = 0; numDMA < testInfo->numDMAs; numDMA++) {
|
||||
|
||||
const uint32 dmaWidth = 256;
|
||||
const uint32 dmaHeight = 256;
|
||||
const uint32 margin = 5;
|
||||
SVGASignedRect blitDest = { myScreen.size.width - margin - dmaWidth,
|
||||
myScreen.size.height - margin - dmaHeight,
|
||||
myScreen.size.width - margin,
|
||||
myScreen.size.height - margin };
|
||||
|
||||
/*
|
||||
* We can redefine the GMRFB, but coalescing will only
|
||||
* occur if it's exactly the same for each DMA.
|
||||
*/
|
||||
Screen_BlitFromGMRFB(&blitOrigin, &blitDest, myScreen.id);
|
||||
|
||||
if (testInfo->fencePerDMA) {
|
||||
SVGA_InsertFence();
|
||||
}
|
||||
}
|
||||
if (testInfo->finalFence) {
|
||||
SVGA_InsertFence();
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_SyncToFence(SVGA_InsertFence());
|
||||
VMBackdoor_GetTime(&after);
|
||||
|
||||
Console_MoveTo(10, 150 + 120 * testNum);
|
||||
Console_Format("Test #%d: %s\n\nSpeed: %d us ",
|
||||
testNum + 1, testInfo->text,
|
||||
VMBackdoor_TimeDiffUS(&before, &after) / numRepeats);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
7
examples/screen-gmr-discontig/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-gmr-discontig.img
|
||||
VMX_MEMSIZE = 32
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
107
examples/screen-gmr-discontig/main.c
Normal file
|
@ -0,0 +1,107 @@
|
|||
/*
|
||||
* Stress test for GMR-to-screen blits with a static but highly
|
||||
* discontiguous mapping.
|
||||
*
|
||||
* In this test, we define a single large discontiguous GMR, and blit
|
||||
* to the screen from random addresses in this GMR.
|
||||
*
|
||||
* To measure this test's performance, use mksPerfTool to read the
|
||||
* number of SWB messages processed per second on the host.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "math.h"
|
||||
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
|
||||
SVGAScreenObject myScreen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 1600, 1200 },
|
||||
.root = { -1234, 5678 },
|
||||
};
|
||||
Screen_Define(&myScreen);
|
||||
|
||||
const uint32 gmrId = 0;
|
||||
uint32 numPages = 1 + (myScreen.size.width * myScreen.size.height *
|
||||
sizeof(uint32)) / PAGE_SIZE;
|
||||
|
||||
PPN pages = GMR_DefineEvenPages(gmrId, numPages);
|
||||
|
||||
const uint32 bitsPerPixel = 32;
|
||||
const uint32 colorDepth = 24;
|
||||
const uint32 bytesPerLine = myScreen.size.width * sizeof(uint32);
|
||||
|
||||
const SVGAGMRImageFormat format = {{{
|
||||
.bitsPerPixel = bitsPerPixel,
|
||||
.colorDepth = colorDepth,
|
||||
}}};
|
||||
|
||||
SVGAGuestPtr gPtr = {
|
||||
.gmrId = gmrId,
|
||||
.offset = 0,
|
||||
};
|
||||
Screen_DefineGMRFB(gPtr, bytesPerLine, format);
|
||||
|
||||
/*
|
||||
* This is much like the tiny-2d-updates test, except with Screen
|
||||
* Object and with larger blits... We emit an endless series of
|
||||
* frames, each one of which has a different screen color (we XOR a
|
||||
* constant with the GMR). For each frame, we update the screen in
|
||||
* a grid of small tiles.
|
||||
*/
|
||||
|
||||
const uint32 tileSize = 21; // Some random odd size...
|
||||
|
||||
while (1) {
|
||||
PPN p;
|
||||
int x, y;
|
||||
|
||||
/*
|
||||
* We don't synchronize these writes to the host's DMA
|
||||
* completion. This means we'll get tearing- you'll see a
|
||||
* horizontal line at some point, which indicates how far along
|
||||
* in this repaint we are at the time the host gets around to
|
||||
* refreshing the screen.
|
||||
*
|
||||
* No big deal. This isn't intended to be an example of correct
|
||||
* rendering, we're just testing to see how fast the host can
|
||||
* perform these blits out of discontiguous memory.
|
||||
*/
|
||||
|
||||
p = pages;
|
||||
for (x = 0; x < numPages; x++) {
|
||||
uint32 *pageData = PPN_POINTER(p);
|
||||
for (y = 0; y < PAGE_SIZE / sizeof(uint32); y++) {
|
||||
pageData[y] ^= 0xFFFFFF;
|
||||
}
|
||||
p += 2;
|
||||
}
|
||||
|
||||
for (y = 0; y < myScreen.size.height; y += tileSize) {
|
||||
for (x = 0; x < myScreen.size.width; x += tileSize) {
|
||||
|
||||
SVGASignedPoint blitOrigin = { x, y };
|
||||
SVGASignedRect blitDest = { x, y, x+tileSize, y+tileSize };
|
||||
|
||||
Screen_BlitFromGMRFB(&blitOrigin, &blitDest, myScreen.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
7
examples/screen-gmr-remap/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-gmr-remap.img
|
||||
VMX_MEMSIZE = 32
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
202
examples/screen-gmr-remap/main.c
Normal file
|
@ -0,0 +1,202 @@
|
|||
/*
|
||||
* Stress test for GMR-to-screen blits with dynamic GMR mapping.
|
||||
*
|
||||
* This test uses GMRs in a rather extreme way- it repeatedly repaints
|
||||
* the screen in page-sized (32*32*4 = 4096) chunks, using GMRs which
|
||||
* are redefined for each DMA operation. Each in-flight DMA has a
|
||||
* separate GMR allocated to it.
|
||||
*
|
||||
* The first page of each GMR contains the data we're actually blitting
|
||||
* to the screen. This page comes from a rotating pool of 4096 pages
|
||||
* (16 MB of memory) which has a static pattern of colored tiles painted
|
||||
* into it during initialization.
|
||||
*
|
||||
* The rest of each GMR is fluff. After the single page of useful
|
||||
* data, we have 128 dummy pages. This makes the GMRs a bit more
|
||||
* reasonably sized (512 KB) to simulate the size of a more typical
|
||||
* graphics-related mapping.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "math.h"
|
||||
|
||||
|
||||
/*
|
||||
* fillPages --
|
||||
*
|
||||
* Fill a range of contiguous pages with a test pattern. In this
|
||||
* case, each page is a solid color and each consecutive page has a
|
||||
* different color.
|
||||
*/
|
||||
|
||||
static void
|
||||
fillPages(PPN firstPage, uint32 count, uint32 tileSize)
|
||||
{
|
||||
while (count) {
|
||||
const uint32 tick = (uint32)firstPage;
|
||||
const float rPhase = tick * 0.01;
|
||||
const float gPhase = tick * 0.02;
|
||||
const float bPhase = tick * 0.03;
|
||||
|
||||
const uint8 r = sinf(rPhase) * 0x60 + 0x80;
|
||||
const uint8 g = sinf(gPhase) * 0x60 + 0x80;
|
||||
const uint8 b = sinf(bPhase) * 0x60 + 0x80;
|
||||
|
||||
const uint32 color = (r << 16) | (g << 8) | b;
|
||||
|
||||
memset32(PPN_POINTER(firstPage), color, tileSize * tileSize);
|
||||
|
||||
count--;
|
||||
firstPage++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Main loop and initialization.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
|
||||
SVGAScreenObject myScreen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 800, 600 },
|
||||
.root = { -1234, 5678 },
|
||||
};
|
||||
Screen_Define(&myScreen);
|
||||
|
||||
const uint32 numPages = 4096;
|
||||
const uint32 tileSize = 32;
|
||||
|
||||
const uint32 bitsPerPixel = 32;
|
||||
const uint32 colorDepth = 24;
|
||||
|
||||
const uint32 tileBytesPerLine = tileSize * sizeof(uint32);
|
||||
|
||||
const SVGAGMRImageFormat tileFormat = {{{
|
||||
.bitsPerPixel = bitsPerPixel,
|
||||
.colorDepth = colorDepth,
|
||||
}}};
|
||||
|
||||
/*
|
||||
* Allocate a pool of system memory pages. In a real driver, these
|
||||
* might be pages we get at runtime from a user-mode app and lock
|
||||
* down prior to a DMA operation. We have many more pages than we
|
||||
* have GMRs or in-flight DMAs.
|
||||
*/
|
||||
|
||||
PPN firstPage = Heap_AllocPages(numPages);
|
||||
PPN lastPage = firstPage + numPages - 1;
|
||||
PPN currentPage = firstPage;
|
||||
fillPages(firstPage, numPages, tileSize);
|
||||
|
||||
/*
|
||||
* Allocate a GMR descriptor full of dummy mappings. We'll throw a
|
||||
* handful of these into each GMR, so that the resulting GMRs have
|
||||
* a more realistic size than just a single page.
|
||||
*/
|
||||
|
||||
static SVGAGuestMemDescriptor dummyPages[128];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < arraysize(dummyPages); i++) {
|
||||
dummyPages[i].ppn = 1024 + (i & 0xF) * 3;
|
||||
dummyPages[i].numPages = 1;
|
||||
}
|
||||
|
||||
PPN dummyDescriptor = GMR_AllocDescriptor(dummyPages, arraysize(dummyPages));
|
||||
|
||||
/*
|
||||
* Allocate a single page to use for the GMR descriptor
|
||||
* head. Instead of using GMR_Define(), we'll do this manually so
|
||||
* that we can keep recycling the same single-page descriptor.
|
||||
*/
|
||||
|
||||
PPN descPage = Heap_AllocPages(1);
|
||||
SVGAGuestMemDescriptor *desc = PPN_POINTER(descPage);
|
||||
|
||||
/*
|
||||
* Each GMR has a fence, so we can wait to re-use it until after
|
||||
* the DMA has expired. In this example, we use the first 32 GMRs.
|
||||
*/
|
||||
|
||||
uint32 gmrFences[32] = { 0 };
|
||||
uint32 gmrIndex = 5;
|
||||
|
||||
/*
|
||||
* Keep looping over the whole screen, tile by tile.
|
||||
*/
|
||||
|
||||
while (1) {
|
||||
int x, y;
|
||||
for (y = 0; y < myScreen.size.height; y += tileSize) {
|
||||
for (x = 0; x < myScreen.size.width; x += tileSize) {
|
||||
|
||||
/*
|
||||
* Wait until we're done with the old GMR.
|
||||
*/
|
||||
|
||||
SVGA_SyncToFence(gmrFences[gmrIndex]);
|
||||
|
||||
/*
|
||||
* Define the new GMR, point it to the next sysmem page in
|
||||
* our pool. The first page in this GMR will be our
|
||||
* filled page, the rest will be dummy pages.
|
||||
*/
|
||||
|
||||
desc[0].ppn = currentPage;
|
||||
desc[0].numPages = 1;
|
||||
desc[1].ppn = dummyDescriptor;
|
||||
desc[1].numPages = 0;
|
||||
|
||||
SVGA_WriteReg(SVGA_REG_GMR_ID, gmrIndex);
|
||||
SVGA_WriteReg(SVGA_REG_GMR_DESCRIPTOR, descPage);
|
||||
|
||||
currentPage++;
|
||||
if (currentPage == lastPage) {
|
||||
currentPage = firstPage;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do a blit from this GMR to the screen, and set a fence so that
|
||||
* we can wait to recycle the GMR until after this DMA completes.
|
||||
*/
|
||||
|
||||
SVGAGuestPtr gPtr = {
|
||||
.gmrId = gmrIndex,
|
||||
.offset = 0,
|
||||
};
|
||||
Screen_DefineGMRFB(gPtr, tileBytesPerLine, tileFormat);
|
||||
|
||||
SVGASignedPoint blitOrigin = { 0, 0 };
|
||||
SVGASignedRect blitDest = { x, y, x+tileSize, y+tileSize };
|
||||
|
||||
Screen_BlitFromGMRFB(&blitOrigin, &blitDest, myScreen.id);
|
||||
gmrFences[gmrIndex] = SVGA_InsertFence();
|
||||
|
||||
/*
|
||||
* Next GMR..
|
||||
*/
|
||||
gmrIndex = (gmrIndex + 1) % arraysize(gmrFences);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
7
examples/screen-multimon/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-multimon.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
470
examples/screen-multimon/main.c
Normal file
|
@ -0,0 +1,470 @@
|
|||
/*
|
||||
* This is an example of dynamic multi-monitor support in the VMware
|
||||
* SVGA device, using the Screen Object extension. This demo lets you
|
||||
* interactively modify, create, and destroy screens.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "math.h"
|
||||
#include "keyboard.h"
|
||||
#include "vmbackdoor.h"
|
||||
#include "timer.h"
|
||||
|
||||
SVGAScreenObject screens[9];
|
||||
int currentScreen;
|
||||
int screenContainingCursor;
|
||||
volatile uint32 keyBuffer;
|
||||
int movementAmount = 10;
|
||||
SVGASignedPoint screenCursorPos;
|
||||
SVGASignedRect boundingRect;
|
||||
|
||||
#define POLL_RATE_HZ 60
|
||||
#define CURSOR_WIDTH 35
|
||||
#define CURSOR_HEIGHT 40
|
||||
|
||||
|
||||
/*
|
||||
* updateBoundingRect --
|
||||
*
|
||||
* Recalculate the bounding rectangle of all rooted screens and
|
||||
* store the result in boundingRect.
|
||||
*/
|
||||
|
||||
void
|
||||
updateBoundingRect(void)
|
||||
{
|
||||
uint32 id;
|
||||
|
||||
boundingRect.left = boundingRect.top = 0x7fffffff;
|
||||
boundingRect.right = boundingRect.bottom = 0x80000000;
|
||||
|
||||
for (id = 0; id < arraysize(screens); id++) {
|
||||
SVGAScreenObject *screen = &screens[id];
|
||||
|
||||
if (screen->id == SVGA_ID_INVALID ||
|
||||
!(screen->flags & SVGA_SCREEN_HAS_ROOT)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
boundingRect.left = MIN(boundingRect.left, screen->root.x);
|
||||
boundingRect.top = MIN(boundingRect.top, screen->root.y);
|
||||
boundingRect.right = MAX(boundingRect.right,
|
||||
(int32)(screen->root.x + screen->size.width));
|
||||
boundingRect.bottom = MAX(boundingRect.bottom,
|
||||
(int32)(screen->root.y + screen->size.height));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* defineAlphaArrow --
|
||||
*
|
||||
* Defines an alpha cursor (a pointing arrow).
|
||||
*/
|
||||
|
||||
void
|
||||
defineAlphaArrow(void)
|
||||
{
|
||||
static const SVGAFifoCmdDefineAlphaCursor cursor = {
|
||||
.id = 0,
|
||||
.hotspotX = 1,
|
||||
.hotspotY = 1,
|
||||
.width = CURSOR_WIDTH,
|
||||
.height = CURSOR_HEIGHT,
|
||||
};
|
||||
|
||||
static const uint32 data[] = {
|
||||
# include "rgba_arrow.h"
|
||||
};
|
||||
|
||||
void *fifoData;
|
||||
|
||||
SVGA_BeginDefineAlphaCursor(&cursor, &fifoData);
|
||||
memcpy(fifoData, data, sizeof data);
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* drawScreenBorder --
|
||||
*
|
||||
* Redraw the border of a screen, indicating whether or not it's current.
|
||||
*/
|
||||
|
||||
void
|
||||
drawScreenBorder(const SVGAScreenObject *screen)
|
||||
{
|
||||
const int t = 4; // Thickness
|
||||
const uint32 color = currentScreen == screen->id ? 0xffffdd : 0x555555;
|
||||
const int w = screen->size.width;
|
||||
const int h = screen->size.height;
|
||||
|
||||
if (screen->id != SVGA_ID_INVALID) {
|
||||
ScreenDraw_SetScreen(screen->id, screen->size.width, screen->size.height);
|
||||
ScreenDraw_Border(0, 0, w, h, color, t);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* drawScreenText --
|
||||
*
|
||||
* Draw informational text on a screen.
|
||||
*/
|
||||
|
||||
void
|
||||
drawScreenText(const SVGAScreenObject *screen)
|
||||
{
|
||||
ScreenDraw_SetScreen(screen->id, screen->size.width, screen->size.height);
|
||||
Console_MoveTo(10, 10);
|
||||
Console_Format("Screen #%d\n"
|
||||
"%dx%d at (%d,%d) \n",
|
||||
screen->id, screen->size.width, screen->size.height,
|
||||
screen->root.x, screen->root.y);
|
||||
|
||||
if (screen->id == screenContainingCursor) {
|
||||
Console_Format("Cursor: (%d,%d) \n",
|
||||
screenCursorPos.x, screenCursorPos.y);
|
||||
} else {
|
||||
Console_Format(" \n");
|
||||
}
|
||||
|
||||
Console_Format("\n"
|
||||
"1-%d or mouse click selects screen.\n"
|
||||
"Arrow keys move screen.\n"
|
||||
"'wasd' adjusts size.\n"
|
||||
"'WASD' adjusts size without repaint.\n"
|
||||
"Space bar toggles create/destroy.\n"
|
||||
"\n"
|
||||
"Moving %d pixels at a time. \n"
|
||||
"(Adjust with [ ] keys.)\n",
|
||||
arraysize(screens),
|
||||
movementAmount);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* paintScreen --
|
||||
*
|
||||
* Draw informational text, a background, and a border to each
|
||||
* screen.
|
||||
*/
|
||||
|
||||
void
|
||||
paintScreen(const SVGAScreenObject *screen)
|
||||
{
|
||||
ScreenDraw_SetScreen(screen->id, screen->size.width, screen->size.height);
|
||||
Console_Clear();
|
||||
drawScreenText(screen);
|
||||
drawScreenBorder(screen);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* setCurrentScreen --
|
||||
*
|
||||
* Switch to a new 'current' screen, and indicate it visually by
|
||||
* repainting the border. If the new screen ID is bad, do nothing.
|
||||
*/
|
||||
|
||||
void
|
||||
setCurrentScreen(int nextScreen)
|
||||
{
|
||||
if (nextScreen >= 0 && nextScreen < arraysize(screens)) {
|
||||
int prevScreen = currentScreen;
|
||||
currentScreen = nextScreen;
|
||||
|
||||
drawScreenBorder(&screens[prevScreen]);
|
||||
drawScreenBorder(&screens[nextScreen]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* toggleScreenExistence --
|
||||
*
|
||||
* Define or undefine the current screen. When we first define it,
|
||||
* paint its contents.
|
||||
*/
|
||||
|
||||
void
|
||||
toggleScreenExistence(void)
|
||||
{
|
||||
SVGAScreenObject *screen = &screens[currentScreen];
|
||||
|
||||
if (screen->id == SVGA_ID_INVALID) {
|
||||
screen->id = currentScreen;
|
||||
Screen_Define(screen);
|
||||
paintScreen(screen);
|
||||
} else {
|
||||
Screen_Destroy(screen->id);
|
||||
screen->id = SVGA_ID_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* kbIRQ --
|
||||
*
|
||||
* Keyboard IRQ handler. This runs with IRQs disabled, so we need
|
||||
* to thunk this key back to the main loop before we do any SVGA
|
||||
* drawing as a result.
|
||||
*/
|
||||
|
||||
fastcall void
|
||||
kbIRQ(KeyEvent *event)
|
||||
{
|
||||
if (event->key && event->pressed) {
|
||||
keyBuffer = event->key;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* kbHandler --
|
||||
*
|
||||
* Keyboard event handler, running in the main loop.
|
||||
*/
|
||||
|
||||
fastcall void
|
||||
kbHandler(uint32 key)
|
||||
{
|
||||
/* Digits select a screen */
|
||||
setCurrentScreen(key - '1');
|
||||
|
||||
SVGAScreenObject *screen = &screens[currentScreen];
|
||||
|
||||
if (key == ' ') {
|
||||
toggleScreenExistence();
|
||||
updateBoundingRect();
|
||||
return;
|
||||
}
|
||||
|
||||
if (screen->id == SVGA_ID_INVALID) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (key) {
|
||||
|
||||
case '[':
|
||||
movementAmount = MAX(1, movementAmount - 1);
|
||||
drawScreenText(screen);
|
||||
break;
|
||||
|
||||
case ']':
|
||||
movementAmount++;
|
||||
drawScreenText(screen);
|
||||
break;
|
||||
|
||||
case KEY_LEFT:
|
||||
screen->root.x -= movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case KEY_RIGHT:
|
||||
screen->root.x += movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case KEY_UP:
|
||||
screen->root.y -= movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case KEY_DOWN:
|
||||
screen->root.y += movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
screen->size.width -= movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
screen->size.width += movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case 'W':
|
||||
screen->size.height -= movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case 'S':
|
||||
screen->size.height += movementAmount;
|
||||
drawScreenText(screen);
|
||||
Screen_Define(screen);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
screen->size.width -= movementAmount;
|
||||
Screen_Define(screen);
|
||||
paintScreen(screen);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
screen->size.width += movementAmount;
|
||||
Screen_Define(screen);
|
||||
paintScreen(screen);
|
||||
break;
|
||||
|
||||
case 'w':
|
||||
screen->size.height -= movementAmount;
|
||||
Screen_Define(screen);
|
||||
paintScreen(screen);
|
||||
break;
|
||||
|
||||
case 's':
|
||||
screen->size.height += movementAmount;
|
||||
Screen_Define(screen);
|
||||
paintScreen(screen);
|
||||
break;
|
||||
}
|
||||
|
||||
updateBoundingRect();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization and main loop.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
uint32 id;
|
||||
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
|
||||
/*
|
||||
* TODO: We currently poll the mouse on a timer. We could instead
|
||||
* make this interrupt-driven, but that might need changes to the
|
||||
* PS/2 controller.
|
||||
*/
|
||||
Timer_InitPIT(PIT_HZ / POLL_RATE_HZ);
|
||||
Intr_SetMask(PIT_IRQ, TRUE);
|
||||
Keyboard_Init();
|
||||
Keyboard_SetHandler(kbIRQ);
|
||||
VMBackdoor_MouseInit(TRUE);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(0);
|
||||
|
||||
|
||||
/*
|
||||
* Initialize default parameters for each screen. None of these
|
||||
* exist yet, and we indicate that by setting their ID to
|
||||
* SVGA_ID_INVALID.
|
||||
*/
|
||||
|
||||
for (id = 0; id < arraysize(screens); id++) {
|
||||
SVGAScreenObject *screen = &screens[id];
|
||||
|
||||
screen->structSize = sizeof *screen;
|
||||
screen->id = SVGA_ID_INVALID;
|
||||
screen->flags = SVGA_SCREEN_HAS_ROOT;
|
||||
screen->size.width = 320;
|
||||
screen->size.height = 240;
|
||||
screen->root.x = 320 * id;
|
||||
screen->root.y = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make the first screen primary, to work around bug 399528 in the
|
||||
* Workstation UI.
|
||||
*/
|
||||
screens[0].flags |= SVGA_SCREEN_IS_PRIMARY;
|
||||
|
||||
/*
|
||||
* Make a screen visible, so the user can see our instructions.
|
||||
*/
|
||||
toggleScreenExistence();
|
||||
|
||||
updateBoundingRect();
|
||||
|
||||
defineAlphaArrow();
|
||||
|
||||
/*
|
||||
* Main loop: Wait for keyboard interrupts, and handle keys by
|
||||
* pulling them out of eventBuffer.
|
||||
*/
|
||||
|
||||
while (1) {
|
||||
uint32 key = KEY_NONE;
|
||||
Bool needCursorUpdate = FALSE;
|
||||
static VMMousePacket mouseState;
|
||||
|
||||
Intr_Halt();
|
||||
Atomic_Exchange(keyBuffer, key);
|
||||
if (key != KEY_NONE) {
|
||||
kbHandler(key);
|
||||
}
|
||||
while (VMBackdoor_MouseGetPacket(&mouseState)) {
|
||||
needCursorUpdate = TRUE;
|
||||
}
|
||||
|
||||
if (needCursorUpdate) {
|
||||
SVGASignedPoint virtualCursorPos;
|
||||
Bool cursorOnScreen = FALSE;
|
||||
|
||||
virtualCursorPos.x = boundingRect.left +
|
||||
(mouseState.x * (boundingRect.right - boundingRect.left)) / 65535;
|
||||
virtualCursorPos.y = boundingRect.top +
|
||||
(mouseState.y * (boundingRect.bottom - boundingRect.top)) / 65535;
|
||||
|
||||
for (id = 0; id < arraysize(screens); id++) {
|
||||
SVGAScreenObject *screen = &screens[id];
|
||||
if (screen->id == SVGA_ID_INVALID ||
|
||||
!(screen->flags & SVGA_SCREEN_HAS_ROOT)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (screen->root.x <= virtualCursorPos.x &&
|
||||
screen->root.x + screen->size.width > virtualCursorPos.x &&
|
||||
screen->root.y <= virtualCursorPos.y &&
|
||||
screen->root.y + screen->size.height > virtualCursorPos.y) {
|
||||
|
||||
cursorOnScreen = TRUE;
|
||||
screenCursorPos.x = virtualCursorPos.x - screen->root.x;
|
||||
screenCursorPos.y = virtualCursorPos.y - screen->root.y;
|
||||
|
||||
if (mouseState.buttons & VMMOUSE_LEFT_BUTTON) {
|
||||
setCurrentScreen(screen->id);
|
||||
}
|
||||
|
||||
if (screenContainingCursor != screen->id) {
|
||||
int oldScreenContainingCursor = screenContainingCursor;
|
||||
screenContainingCursor = screen->id;
|
||||
drawScreenText(&screens[oldScreenContainingCursor]);
|
||||
}
|
||||
drawScreenText(screen);
|
||||
}
|
||||
}
|
||||
|
||||
SVGA_MoveCursor(cursorOnScreen,
|
||||
screenCursorPos.x,
|
||||
screenCursorPos.y,
|
||||
screenContainingCursor);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
234
examples/screen-multimon/rgba_arrow.h
Normal file
|
@ -0,0 +1,234 @@
|
|||
0x5f1a1917, 0x60171716, 0x12030302, 0x07000000, 0x07000000, 0x06000000,
|
||||
0x04000000, 0x03000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x922f2e28,
|
||||
0xf36b6853, 0xbd3c3b33, 0x3f0c0c0c, 0x18020202, 0x0e000000, 0x0a000000,
|
||||
0x07000000, 0x05000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x8a282823, 0xffaea97a,
|
||||
0xffa9a478, 0xf0666350, 0xa12a2925, 0x39080808, 0x16000000, 0x10000000,
|
||||
0x0b000000, 0x07000000, 0x04000000, 0x02000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x6b1a1917, 0xfeaca778, 0xffc6bf87,
|
||||
0xffbeb784, 0xfe9e9871, 0xf15f5c4c, 0x8d1f1e1d, 0x3a070707, 0x18000000,
|
||||
0x10000000, 0x0b000000, 0x07000000, 0x04000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x68191917, 0xfc9e9b6f, 0xffc8c288, 0xffc4bd86,
|
||||
0xffbfb884, 0xffb2ab7d, 0xfc888265, 0xd547453c, 0x7c1c1b19, 0x2d040404,
|
||||
0x16000000, 0x0f000000, 0x09000000, 0x06000000, 0x03000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x5d191915, 0xf599956c, 0xffcbc589, 0xffc6c087, 0xffc2bb86,
|
||||
0xffbeb684, 0xffb9b182, 0xffaaa27a, 0xfd7a755e, 0xc3363530, 0x6010100f,
|
||||
0x1e000000, 0x14000000, 0x0d000000, 0x08000000, 0x05000000, 0x03000000,
|
||||
0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x4f141411, 0xee807e5d, 0xffcdc88a, 0xffc9c388, 0xffc5be86, 0xffc1ba85,
|
||||
0xffbcb583, 0xffb8b081, 0xffb3aa7f, 0xffa09875, 0xf6696553, 0xb932302c,
|
||||
0x510d0d0c, 0x1f000000, 0x13000000, 0x0d000000, 0x08000000, 0x05000000,
|
||||
0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3a0b0b0a,
|
||||
0xe2726f54, 0xffd0cb8b, 0xffccc689, 0xffc7c187, 0xffc3bc86, 0xffbfb784,
|
||||
0xffbab383, 0xffb6ae81, 0xffb2a97f, 0xffaaa17c, 0xff8e866b, 0xe6545146,
|
||||
0x99252522, 0x3b060606, 0x1b000000, 0x11000000, 0x0b000000, 0x07000000,
|
||||
0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x24040403, 0xd4575644,
|
||||
0xffd3ce8c, 0xffcec98a, 0xffcac489, 0xffc6bf87, 0xffc1ba85, 0xffbdb584,
|
||||
0xffb9b082, 0xffb4ac80, 0xffb0a77f, 0xffaca27d, 0xffa39a79, 0xfe827a65,
|
||||
0xe3494740, 0x841a1a19, 0x30030303, 0x17000000, 0x0f000000, 0x0a000000,
|
||||
0x06000000, 0x04000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x18000000, 0xcc4c4c3d, 0xffcdc988,
|
||||
0xffd1cb8b, 0xffcdc789, 0xffc8c288, 0xffc4bd86, 0xffc0b984, 0xffbcb483,
|
||||
0xffb7af81, 0xffb3aa7f, 0xffafa57e, 0xffaaa07c, 0xffa69b7b, 0xff9c9175,
|
||||
0xfa746d5d, 0xd643403a, 0x6e141413, 0x29020202, 0x16000000, 0x0f000000,
|
||||
0x0a000000, 0x06000000, 0x03000000, 0x02000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x13000000, 0xbe4c4b3a, 0xffcac686, 0xffd3ce8c,
|
||||
0xffcfca8a, 0xffcbc589, 0xffc6c087, 0xffc2bb85, 0xffbeb784, 0xffbab282,
|
||||
0xffb5ad81, 0xffb1a87f, 0xffada37d, 0xffa89e7c, 0xffa4997a, 0xff9f9378,
|
||||
0xff8d846e, 0xf5625e52, 0xb62f2e2b, 0x530d0d0d, 0x21010101, 0x13000000,
|
||||
0x0d000000, 0x08000000, 0x05000000, 0x03000000, 0x01000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x12000000, 0xa33e3d30, 0xffbcb97e, 0xffd6d28d, 0xffd2cd8b,
|
||||
0xffcec88a, 0xffc9c388, 0xffc5be87, 0xffc1b985, 0xffbcb483, 0xffb8b082,
|
||||
0xffb4ab80, 0xffafa67e, 0xffaba17d, 0xffa79c7b, 0xffa29779, 0xff9e9378,
|
||||
0xff9a8f77, 0xff877e6b, 0xf65c574e, 0xa7262624, 0x42090808, 0x1b000000,
|
||||
0x12000000, 0x0c000000, 0x08000000, 0x04000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x10000000, 0x882d2d24, 0xffb2b079, 0xffd8d48e, 0xffd4d08c, 0xffd0cb8b,
|
||||
0xffccc689, 0xffc8c187, 0xffc3bd86, 0xffbfb784, 0xffbbb382, 0xffb6ae81,
|
||||
0xffb2a97f, 0xffaea47e, 0xffaaa07c, 0xffa59b7b, 0xffa19679, 0xff9d9177,
|
||||
0xff9a8f77, 0xff968c75, 0xfd7e7665, 0xe34c4941, 0x8e201f1e, 0x38060606,
|
||||
0x18000000, 0x0f000000, 0x0a000000, 0x06000000, 0x03000000, 0x01000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0f000000,
|
||||
0x61191915, 0xfda5a472, 0xffdbd78f, 0xffd7d38d, 0xffd2ce8b, 0xffcec88a,
|
||||
0xffcac488, 0xffc6c087, 0xffc1bb85, 0xffbdb684, 0xffb9b182, 0xffb4ac80,
|
||||
0xffb0a77f, 0xffaca27d, 0xffa89d7b, 0xffa3987a, 0xff9f9478, 0xff9b9077,
|
||||
0xff9a8f77, 0xff9a8f77, 0xff928872, 0xfd766f5f, 0xd23c3a36, 0x71171716,
|
||||
0x24020202, 0x12000000, 0x0c000000, 0x07000000, 0x04000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x0d000000, 0x4b0e0e0d,
|
||||
0xfc9a986a, 0xffddda90, 0xffdad68f, 0xffd6d18d, 0xffd1cc8b, 0xffcdc78a,
|
||||
0xffc9c288, 0xffc4bd86, 0xffc0b985, 0xffbcb483, 0xffb7af81, 0xffb3aa80,
|
||||
0xffafa57e, 0xffaaa07c, 0xffa69b7b, 0xffa29679, 0xff9d9278, 0xff9a8f77,
|
||||
0xff998e77, 0xff958b74, 0xff8c836e, 0xff8e846f, 0xfb686256, 0xc5363431,
|
||||
0x550f0f0e, 0x17000000, 0x0d000000, 0x07000000, 0x04000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x0c000000, 0x3e0c0c0b, 0xf5888761,
|
||||
0xffe0dc90, 0xffdcd88f, 0xffd8d48e, 0xffd3cf8c, 0xffcfca8a, 0xffcbc689,
|
||||
0xffc7c087, 0xffc3bc85, 0xffbeb784, 0xffbab182, 0xffb6ad81, 0xffb1a87f,
|
||||
0xffa79e7a, 0xfe948b6f, 0xfc7c7560, 0xee5b564a, 0xe3424039, 0xdc393733,
|
||||
0xd3363430, 0xc532302c, 0xcd363531, 0xce373632, 0xd2353432, 0xda2f2f2e,
|
||||
0xa3212121, 0x410a0a0a, 0x0b000000, 0x06000000, 0x03000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x0b000000, 0x350b0b09, 0xe37a7957, 0xffe2df91,
|
||||
0xffdfdb90, 0xffdad78e, 0xffd6d18d, 0xffd2cd8b, 0xffcec889, 0xffc9c388,
|
||||
0xffc5bf87, 0xffc1ba85, 0xffbcb483, 0xffb4ac7f, 0xfd898367, 0xf6585549,
|
||||
0xd8312f2b, 0xb6141414, 0x9d0b0b0b, 0x8a040404, 0x77000000, 0x6a000000,
|
||||
0x5f000000, 0x52000000, 0x48000000, 0x48040404, 0x5b0c0c0c, 0x85181818,
|
||||
0x9a1f1f1f, 0x0f000000, 0x09000000, 0x05000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x0a000000, 0x2a070706, 0xce545441, 0xffe4e192, 0xffe2df91,
|
||||
0xffddda90, 0xffd9d58e, 0xffd5d08d, 0xffd0cb8b, 0xffccc689, 0xffc8c188,
|
||||
0xffbeb883, 0xfd898465, 0xeb46463b, 0xc3191919, 0x94030303, 0x86000000,
|
||||
0x7d000000, 0x74000000, 0x6b000000, 0x62000000, 0x59000000, 0x51000000,
|
||||
0x47000000, 0x3e000000, 0x34000000, 0x2a000000, 0x21000000, 0x18000000,
|
||||
0x10000000, 0x0b000000, 0x06000000, 0x03000000, 0x01000000, 0x01000000,
|
||||
0x09000000, 0x1d020202, 0xb538382f, 0xffe4e392, 0xffe4e192, 0xffe0dd91,
|
||||
0xffdbd88f, 0xffd7d38d, 0xffd3ce8c, 0xffcdc889, 0xfeafaa78, 0xf45f5d4b,
|
||||
0xc51e1e1c, 0x9d070707, 0x86000000, 0x7a000000, 0x70000000, 0x65000000,
|
||||
0x5b000000, 0x52000000, 0x4a000000, 0x43000000, 0x3c000000, 0x36000000,
|
||||
0x2f000000, 0x29000000, 0x22000000, 0x1b000000, 0x15000000, 0x0f000000,
|
||||
0x0a000000, 0x07000000, 0x04000000, 0x02000000, 0x01000000, 0x08000000,
|
||||
0x13000000, 0xa0262623, 0xffe2e191, 0xffe6e493, 0xffe2e091, 0xffdeda90,
|
||||
0xffdad68e, 0xffd5d18c, 0xfea9a574, 0xe9444339, 0xae0e0e0e, 0x8a000000,
|
||||
0x7d000000, 0x70000000, 0x63000000, 0x56000000, 0x4a000000, 0x40000000,
|
||||
0x38000000, 0x31000000, 0x2b000000, 0x27000000, 0x23000000, 0x1f000000,
|
||||
0x1b000000, 0x17000000, 0x13000000, 0x0f000000, 0x0b000000, 0x08000000,
|
||||
0x06000000, 0x03000000, 0x02000000, 0x01000000, 0x07000000, 0x11000000,
|
||||
0x90262621, 0xffcbca85, 0xffe7e694, 0xffe5e393, 0xffe1de91, 0xffdad68e,
|
||||
0xfe9b996c, 0xd7282825, 0x9b060606, 0x84000000, 0x74000000, 0x65000000,
|
||||
0x55000000, 0x46000000, 0x3a000000, 0x2e000000, 0x26000000, 0x1f000000,
|
||||
0x1a000000, 0x16000000, 0x13000000, 0x11000000, 0x0f000000, 0x0e000000,
|
||||
0x0c000000, 0x0b000000, 0x09000000, 0x07000000, 0x05000000, 0x03000000,
|
||||
0x02000000, 0x01000000, 0x01000000, 0x06000000, 0x0f000000, 0x7a22221d,
|
||||
0xfeb6b57a, 0xffe7e694, 0xffe6e593, 0xffe2e091, 0xfdb0ad77, 0xda33322c,
|
||||
0x95040404, 0x80000000, 0x70000000, 0x5e000000, 0x4d000000, 0x3d000000,
|
||||
0x2f000000, 0x24000000, 0x1b000000, 0x15000000, 0x10000000, 0x0d000000,
|
||||
0x0a000000, 0x09000000, 0x08000000, 0x07000000, 0x06000000, 0x05000000,
|
||||
0x05000000, 0x05000000, 0x03000000, 0x03000000, 0x02000000, 0x01000000,
|
||||
0x01000000, 0x00000000, 0x05000000, 0x0e000000, 0x53131310, 0xfda3a370,
|
||||
0xffe7e694, 0xffe7e694, 0xfec8c783, 0xe648473a, 0x98070707, 0x7e000000,
|
||||
0x6e000000, 0x5b000000, 0x47000000, 0x36000000, 0x27000000, 0x1c000000,
|
||||
0x13000000, 0x0d000000, 0x09000000, 0x07000000, 0x05000000, 0x04000000,
|
||||
0x03000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000,
|
||||
0x02000000, 0x01000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x05000000, 0x0c000000, 0x2f070706, 0xf9868560, 0xffe7e694,
|
||||
0xffe5e493, 0xf066664d, 0x9c0e0e0d, 0x7a000000, 0x6b000000, 0x58000000,
|
||||
0x44000000, 0x30000000, 0x22000000, 0x16000000, 0x0e000000, 0x09000000,
|
||||
0x05000000, 0x03000000, 0x02000000, 0x01000000, 0x01000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x04000000, 0x0b000000, 0x1c010101, 0xf7787859, 0xffe3e292, 0xfcbab97b,
|
||||
0xbd242421, 0x75010101, 0x6a000000, 0x59000000, 0x45000000, 0x31000000,
|
||||
0x20000000, 0x14000000, 0x0c000000, 0x07000000, 0x04000000, 0x02000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000,
|
||||
0x0a000000, 0x14000000, 0xea727153, 0xffd7d68b, 0xf3717053, 0x76060606,
|
||||
0x63000000, 0x59000000, 0x46000000, 0x33000000, 0x21000000, 0x13000000,
|
||||
0x0b000000, 0x05000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03000000, 0x08000000,
|
||||
0x12000000, 0xcb5b5b44, 0xfdb3b278, 0xb72b2b26, 0x57000000, 0x53000000,
|
||||
0x48000000, 0x35000000, 0x24000000, 0x15000000, 0x0b000000, 0x05000000,
|
||||
0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x07000000, 0x10000000,
|
||||
0xac404032, 0xf382825d, 0x80141413, 0x48000000, 0x45000000, 0x39000000,
|
||||
0x28000000, 0x19000000, 0x0e000000, 0x06000000, 0x03000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x02000000, 0x06000000, 0x0d000000, 0x8223231e,
|
||||
0xdf46463b, 0x52070707, 0x3b000000, 0x37000000, 0x2b000000, 0x1d000000,
|
||||
0x11000000, 0x08000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x02000000, 0x05000000, 0x0b000000, 0x65141413, 0xd02c2c2c,
|
||||
0x2e000000, 0x2e000000, 0x2a000000, 0x20000000, 0x14000000, 0x0c000000,
|
||||
0x05000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x01000000, 0x04000000, 0x09000000, 0x520f0f0f, 0xb2242424, 0x22000000,
|
||||
0x24000000, 0x20000000, 0x18000000, 0x0f000000, 0x08000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000,
|
||||
0x03000000, 0x06000000, 0x3d0b0b0b, 0x891b1b1b, 0x19000000, 0x1b000000,
|
||||
0x17000000, 0x11000000, 0x0a000000, 0x05000000, 0x02000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000,
|
||||
0x05000000, 0x0f010101, 0x1c030303, 0x12000000, 0x13000000, 0x11000000,
|
||||
0x0c000000, 0x07000000, 0x03000000, 0x01000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x03000000,
|
||||
0x07000000, 0x0a000000, 0x0d000000, 0x0e000000, 0x0c000000, 0x08000000,
|
||||
0x05000000, 0x02000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x05000000,
|
||||
0x07000000, 0x09000000, 0x0a000000, 0x08000000, 0x06000000, 0x03000000,
|
||||
0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x01000000, 0x03000000, 0x05000000,
|
||||
0x06000000, 0x07000000, 0x05000000, 0x04000000, 0x02000000, 0x01000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x03000000, 0x04000000,
|
||||
0x04000000, 0x04000000, 0x03000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x02000000, 0x02000000, 0x03000000,
|
||||
0x02000000, 0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
|
||||
0x01000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x01000000, 0x01000000, 0x01000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000,
|
7
examples/screen-present-clip/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-present-clip.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
513
examples/screen-present-clip/main.c
Normal file
|
@ -0,0 +1,513 @@
|
|||
/*
|
||||
* Test clipping for Present and Surface-to-Screen blits.
|
||||
*
|
||||
* This example requires SVGA Screen Object and SVGA3D support.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "svga3d.h"
|
||||
#include "svga3dutil.h"
|
||||
#include "matrix.h"
|
||||
#include "math.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "console_vga.h"
|
||||
|
||||
/*
|
||||
* 3D Rendering Definitions
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
float position[3];
|
||||
uint32 color;
|
||||
} MyVertex;
|
||||
|
||||
typedef struct {
|
||||
int numRects;
|
||||
SVGASignedRect rects[2048];
|
||||
} ClipBuffer;
|
||||
|
||||
uint32 vertexSid, indexSid;
|
||||
ClipBuffer circles[2];
|
||||
|
||||
const int surfWidth = 224;
|
||||
const int surfHeight = 168;
|
||||
|
||||
SVGA3dSurfaceImageId colorImage;
|
||||
SVGA3dSurfaceImageId depthImage;
|
||||
|
||||
static const MyVertex vertexData[] = {
|
||||
{ {-1, -1, -1}, 0xffffff },
|
||||
{ {-1, -1, 1}, 0xffff00 },
|
||||
{ {-1, 1, -1}, 0xff00ff },
|
||||
{ {-1, 1, 1}, 0xff0000 },
|
||||
{ { 1, -1, -1}, 0x00ffff },
|
||||
{ { 1, -1, 1}, 0x00ff00 },
|
||||
{ { 1, 1, -1}, 0x0000ff },
|
||||
{ { 1, 1, 1}, 0x000000 },
|
||||
};
|
||||
|
||||
static const uint16 indexData[] = {
|
||||
0, 1, 1, 3, 3, 2, 2, 0, // -X
|
||||
4, 5, 5, 7, 7, 6, 6, 4, // +X
|
||||
0, 4,
|
||||
1, 5,
|
||||
2, 6,
|
||||
3, 7,
|
||||
};
|
||||
|
||||
const uint32 numLines = arraysize(indexData) / 2;
|
||||
|
||||
|
||||
/*
|
||||
* initScreens --
|
||||
*
|
||||
* Set up our Screen Objects, and label them.
|
||||
*/
|
||||
|
||||
static void
|
||||
initScreens(void)
|
||||
{
|
||||
static const SVGAScreenObject screen = {
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 1024, 768 },
|
||||
.root = { 1000, 2000 },
|
||||
};
|
||||
|
||||
Screen_Define(&screen);
|
||||
|
||||
ScreenDraw_SetScreen(screen.id, screen.size.width, screen.size.height);
|
||||
Console_Clear();
|
||||
|
||||
Console_Format("Surface-to-Screen Blit Clipping Test\n");
|
||||
ScreenDraw_Border(0, 0, screen.size.width, screen.size.height, 0xFF0000, 1);
|
||||
|
||||
Console_MoveTo(20, 45);
|
||||
Console_Format("Stair-step clipping (small tiles)");
|
||||
|
||||
Console_MoveTo(20, 245);
|
||||
Console_Format("Top/bottom halves swapped");
|
||||
|
||||
Console_MoveTo(20, 445);
|
||||
Console_Format("Scaled bottom half, with hole");
|
||||
|
||||
Console_MoveTo(350, 65);
|
||||
Console_Format("Zoomed to 1.5x full screen, two circular clip regions");
|
||||
|
||||
Console_MoveTo(5, 660);
|
||||
Console_Format("Stair-step, clipped against screen edges");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* presentWithClipBuf --
|
||||
*
|
||||
* Present our surface to the screen, with clipping data from a ClipBuffer.
|
||||
*
|
||||
* The supplied ClipBuffer is always in screen coordinates. We
|
||||
* convert them into dest-relative coordinates for the
|
||||
* surface-to-screen blit.
|
||||
*/
|
||||
|
||||
static void
|
||||
presentWithClipBuf(ClipBuffer *buf, int dstL, int dstT, int dstR, int dstB)
|
||||
{
|
||||
SVGASignedRect srcRect = { 0, 0, surfWidth, surfHeight };
|
||||
SVGASignedRect dstRect = { dstL, dstT, dstR, dstB };
|
||||
SVGASignedRect *clip;
|
||||
int i;
|
||||
|
||||
SVGA3D_BeginBlitSurfaceToScreen(&colorImage, &srcRect, 0,
|
||||
&dstRect, &clip, buf->numRects);
|
||||
|
||||
for (i = 0; i < buf->numRects; i++) {
|
||||
clip->left = buf->rects[i].left - dstL;
|
||||
clip->top = buf->rects[i].top - dstT;
|
||||
clip->right = buf->rects[i].right - dstL;
|
||||
clip->bottom = buf->rects[i].bottom - dstT;
|
||||
clip++;
|
||||
}
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* prepareCircle --
|
||||
*
|
||||
* Prepare a ClipBuffer with a circular clip region, and draw an
|
||||
* outline around the region.
|
||||
*/
|
||||
|
||||
static void
|
||||
prepareCircle(ClipBuffer *buf, int centerX, int centerY, int radius)
|
||||
{
|
||||
int r, i;
|
||||
|
||||
i = 0;
|
||||
for (r = -radius; r <= radius; r++) {
|
||||
int chordRadius = __builtin_sqrtf(radius * radius - r * r) + 0.5f;
|
||||
SVGASignedRect *rect = &buf->rects[i++];
|
||||
|
||||
rect->left = centerX - chordRadius;
|
||||
rect->top = centerY - r;
|
||||
rect->right = centerX + chordRadius;
|
||||
rect->bottom = centerY - r + 1;
|
||||
|
||||
ScreenDraw_Rectangle(rect->left - 1, rect->top - 1,
|
||||
rect->right + 1, rect->bottom + 1,
|
||||
0xffffff);
|
||||
}
|
||||
|
||||
buf->numRects = i;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* presentStairStep --
|
||||
*
|
||||
* Use a non-scaled Present to draw many small square tiles, and
|
||||
* clip the edge to a stair-step pattern. This tests performance
|
||||
* for large numbers of clip rectangles, and it will make any edge
|
||||
* artifacts very noticeable.
|
||||
*
|
||||
* This is a set of copyrects where all of the sources line up,
|
||||
* so it is also expressable as a clip rectangle.
|
||||
*/
|
||||
|
||||
static void
|
||||
presentStairStep(int xOffset, int yOffset)
|
||||
{
|
||||
const int gridSize = 16;
|
||||
const int numRects = (gridSize + 1) * gridSize / 2;
|
||||
const int squareWidth = surfWidth / gridSize;
|
||||
const int squareHeight = surfHeight / gridSize;
|
||||
int x, y, i;
|
||||
SVGA3dCopyRect *cr;
|
||||
|
||||
SVGA3D_BeginPresent(colorImage.sid, &cr, numRects);
|
||||
i = 0;
|
||||
for (x = 0; x < gridSize; x++) {
|
||||
for (y = 0; y < gridSize; y++) {
|
||||
if (x + y < gridSize) {
|
||||
|
||||
cr[i].srcx = x * squareWidth;
|
||||
cr[i].srcy = y * squareHeight;
|
||||
cr[i].x = cr[i].srcx + xOffset;
|
||||
cr[i].y = cr[i].srcy + yOffset;
|
||||
cr[i].w = squareWidth;
|
||||
cr[i].h = squareHeight;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i != numRects) {
|
||||
SVGA_Panic("Incorrect numRects in present()");
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* present --
|
||||
*
|
||||
* Copy our rendered cube to the screen. This is where we test clipping.
|
||||
*/
|
||||
|
||||
static void
|
||||
present(void)
|
||||
{
|
||||
/*
|
||||
* Main stair-step unscaled present test.
|
||||
*/
|
||||
presentStairStep(1020, 2065);
|
||||
|
||||
/*
|
||||
* Another non-scaled present, this time using the copyrects in a
|
||||
* way which is not also expressable as a clip rectangle. In this
|
||||
* case, we're using one Present to split the image in half (top
|
||||
* and bottom) and reverse the two halves.
|
||||
*/
|
||||
{
|
||||
SVGA3dCopyRect *cr;
|
||||
|
||||
SVGA3D_BeginPresent(colorImage.sid, &cr, 2);
|
||||
|
||||
cr[0].srcx = 0;
|
||||
cr[0].srcy = surfHeight / 2;
|
||||
cr[0].x = 1020;
|
||||
cr[0].y = 2265;
|
||||
cr[0].w = surfWidth;
|
||||
cr[0].h = surfHeight / 2;
|
||||
|
||||
cr[1].srcx = 0;
|
||||
cr[1].srcy = 0;
|
||||
cr[1].x = 1020;
|
||||
cr[1].y = 2265 + surfHeight / 2;
|
||||
cr[1].w = surfWidth;
|
||||
cr[1].h = surfHeight / 2;
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
/*
|
||||
* A fairly normal scaled blit. This one is only slightly scaled, unlike the
|
||||
* large one below- so it may be easier to see a different class of bugs.
|
||||
* For clipping, we remove a hole from the center of the image.
|
||||
*
|
||||
* We also test source clipping by displaying the bottom half.
|
||||
*/
|
||||
{
|
||||
SVGASignedRect *clip;
|
||||
|
||||
SVGASignedRect srcRect = { 0, surfHeight/2, surfWidth, surfHeight };
|
||||
SVGASignedRect dstRect = { 20, 465, 325, 655 };
|
||||
|
||||
SVGA3D_BeginBlitSurfaceToScreen(&colorImage, &srcRect, 0,
|
||||
&dstRect, &clip, 4);
|
||||
|
||||
// Top
|
||||
clip[0].left = 0;
|
||||
clip[0].top = 0;
|
||||
clip[0].right = 445;
|
||||
clip[0].bottom = 75;
|
||||
|
||||
// Bottom
|
||||
clip[1].left = 0;
|
||||
clip[1].top = 115;
|
||||
clip[1].right = 445;
|
||||
clip[1].bottom = 330;
|
||||
|
||||
// Left
|
||||
clip[2].left = 0;
|
||||
clip[2].top = 75;
|
||||
clip[2].right = 63;
|
||||
clip[2].bottom = 115;
|
||||
|
||||
// Right
|
||||
clip[3].left = 242;
|
||||
clip[3].top = 75;
|
||||
clip[3].right = 305;
|
||||
clip[3].bottom = 115;
|
||||
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
/*
|
||||
* Stair-step, clipped against the bottom and left sides of the screen.
|
||||
*/
|
||||
presentStairStep(1000 - surfHeight/2, 2000 + 768 - surfHeight/2);
|
||||
|
||||
/*
|
||||
* Scaled circles. We scale these asymmetrically, to about 1.5x the
|
||||
* size of the screen.
|
||||
*/
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < arraysize(circles); i++) {
|
||||
presentWithClipBuf(&circles[i], -500, -300, 1300, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* setup3D --
|
||||
*
|
||||
* Allocate 3D resources.
|
||||
*/
|
||||
|
||||
static void
|
||||
setup3D(void)
|
||||
{
|
||||
colorImage.sid = SVGA3DUtil_DefineSurface2D(surfWidth, surfHeight, SVGA3D_X8R8G8B8);
|
||||
depthImage.sid = SVGA3DUtil_DefineSurface2D(surfWidth, surfHeight, SVGA3D_Z_D16);
|
||||
|
||||
SVGA3D_DefineContext(CID);
|
||||
|
||||
vertexSid = SVGA3DUtil_DefineStaticBuffer(vertexData, sizeof vertexData);
|
||||
indexSid = SVGA3DUtil_DefineStaticBuffer(indexData, sizeof indexData);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* drawCube --
|
||||
*
|
||||
* Draw a spinning wireframe cube.
|
||||
*/
|
||||
|
||||
static void
|
||||
drawCube(void)
|
||||
{
|
||||
static float angle = 0.5f;
|
||||
SVGA3dRect *rect;
|
||||
Matrix perspectiveMat;
|
||||
SVGA3dTextureState *ts;
|
||||
SVGA3dRenderState *rs;
|
||||
SVGA3dRect viewport = { 0, 0, surfWidth, surfHeight };
|
||||
|
||||
SVGA3D_SetRenderTarget(CID, SVGA3D_RT_COLOR0, &colorImage);
|
||||
SVGA3D_SetRenderTarget(CID, SVGA3D_RT_DEPTH, &depthImage);
|
||||
|
||||
SVGA3D_SetViewport(CID, &viewport);
|
||||
SVGA3D_SetZRange(CID, 0.0f, 1.0f);
|
||||
|
||||
SVGA3D_BeginSetRenderState(CID, &rs, 5);
|
||||
{
|
||||
rs[0].state = SVGA3D_RS_BLENDENABLE;
|
||||
rs[0].uintValue = FALSE;
|
||||
|
||||
rs[1].state = SVGA3D_RS_ZENABLE;
|
||||
rs[1].uintValue = TRUE;
|
||||
|
||||
rs[2].state = SVGA3D_RS_ZWRITEENABLE;
|
||||
rs[2].uintValue = TRUE;
|
||||
|
||||
rs[3].state = SVGA3D_RS_ZFUNC;
|
||||
rs[3].uintValue = SVGA3D_CMP_LESS;
|
||||
|
||||
rs[4].state = SVGA3D_RS_LIGHTINGENABLE;
|
||||
rs[4].uintValue = FALSE;
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
SVGA3D_BeginSetTextureState(CID, &ts, 4);
|
||||
{
|
||||
ts[0].stage = 0;
|
||||
ts[0].name = SVGA3D_TS_BIND_TEXTURE;
|
||||
ts[0].value = SVGA3D_INVALID_ID;
|
||||
|
||||
ts[1].stage = 0;
|
||||
ts[1].name = SVGA3D_TS_COLOROP;
|
||||
ts[1].value = SVGA3D_TC_SELECTARG1;
|
||||
|
||||
ts[2].stage = 0;
|
||||
ts[2].name = SVGA3D_TS_COLORARG1;
|
||||
ts[2].value = SVGA3D_TA_DIFFUSE;
|
||||
|
||||
ts[3].stage = 0;
|
||||
ts[3].name = SVGA3D_TS_ALPHAARG1;
|
||||
ts[3].value = SVGA3D_TA_DIFFUSE;
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
/*
|
||||
* Draw a red border around the render target, to test edge
|
||||
* accuracy in Present.
|
||||
*/
|
||||
SVGA3D_BeginClear(CID, SVGA3D_CLEAR_COLOR | SVGA3D_CLEAR_DEPTH,
|
||||
0xFF0000, 1.0f, 0, &rect, 1);
|
||||
*rect = viewport;
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
/*
|
||||
* Draw the background color
|
||||
*/
|
||||
SVGA3D_BeginClear(CID, SVGA3D_CLEAR_COLOR | SVGA3D_CLEAR_DEPTH,
|
||||
0x336699, 1.0f, 0, &rect, 1);
|
||||
rect->x = viewport.x + 1;
|
||||
rect->y = viewport.y + 1;
|
||||
rect->w = viewport.w - 2;
|
||||
rect->h = viewport.h - 2;
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
SVGA3dVertexDecl *decls;
|
||||
SVGA3dPrimitiveRange *ranges;
|
||||
Matrix view;
|
||||
|
||||
Matrix_Copy(view, gIdentityMatrix);
|
||||
Matrix_Scale(view, 0.5, 0.5, 0.5, 1.0);
|
||||
Matrix_RotateX(view, 30.0 * M_PI / 180.0);
|
||||
Matrix_RotateY(view, angle);
|
||||
Matrix_Translate(view, 0, 0, 2.2);
|
||||
|
||||
angle += 0.02;
|
||||
|
||||
Matrix_Perspective(perspectiveMat, 45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_WORLD, gIdentityMatrix);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_PROJECTION, perspectiveMat);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_VIEW, view);
|
||||
|
||||
SVGA3D_BeginDrawPrimitives(CID, &decls, 2, &ranges, 1);
|
||||
{
|
||||
decls[0].identity.type = SVGA3D_DECLTYPE_FLOAT3;
|
||||
decls[0].identity.usage = SVGA3D_DECLUSAGE_POSITION;
|
||||
decls[0].array.surfaceId = vertexSid;
|
||||
decls[0].array.stride = sizeof(MyVertex);
|
||||
decls[0].array.offset = offsetof(MyVertex, position);
|
||||
|
||||
decls[1].identity.type = SVGA3D_DECLTYPE_D3DCOLOR;
|
||||
decls[1].identity.usage = SVGA3D_DECLUSAGE_COLOR;
|
||||
decls[1].array.surfaceId = vertexSid;
|
||||
decls[1].array.stride = sizeof(MyVertex);
|
||||
decls[1].array.offset = offsetof(MyVertex, color);
|
||||
|
||||
ranges[0].primType = SVGA3D_PRIMITIVE_LINELIST;
|
||||
ranges[0].primitiveCount = numLines;
|
||||
ranges[0].indexArray.surfaceId = indexSid;
|
||||
ranges[0].indexArray.stride = sizeof(uint16);
|
||||
ranges[0].indexWidth = sizeof(uint16);
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization, main loop.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
static FPSCounterState fps;
|
||||
uint32 frameFence = 0;
|
||||
uint32 nextFence;
|
||||
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
SVGA3D_Init();
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(0);
|
||||
|
||||
initScreens();
|
||||
setup3D();
|
||||
|
||||
/*
|
||||
* One big circle, and a smaller one that overlaps the top-right
|
||||
* corner. (This tests positive and negative clipping extremes.)
|
||||
*/
|
||||
prepareCircle(&circles[0], 650, 400, 300);
|
||||
prepareCircle(&circles[1], 1000, 50, 250);
|
||||
|
||||
while (1) {
|
||||
if (SVGA3DUtil_UpdateFPSCounter(&fps)) {
|
||||
Console_MoveTo(900, 730);
|
||||
Console_Format("%s ", fps.text);
|
||||
}
|
||||
|
||||
drawCube();
|
||||
|
||||
/*
|
||||
* Flow control- one frame in the FIFO at a time.
|
||||
*/
|
||||
nextFence = SVGA_InsertFence();
|
||||
SVGA_SyncToFence(frameFence);
|
||||
frameFence = nextFence;
|
||||
|
||||
present();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
7
examples/screen-render-test/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
TARGET = screen-render-test.img
|
||||
VMX_MEMSIZE = 16
|
||||
|
||||
APP_SOURCES = main.c wols4x3.yuv.z.data.o
|
||||
|
||||
LIB_DIR = ../../lib
|
||||
include $(LIB_DIR)/Makefile.rules
|
BIN
examples/screen-render-test/expected-results.png
Normal file
After Width: | Height: | Size: 166 KiB |
631
examples/screen-render-test/main.c
Normal file
|
@ -0,0 +1,631 @@
|
|||
/*
|
||||
* This is a test which demonstrates many features of the Screen
|
||||
* Object rendering model:
|
||||
*
|
||||
* - GMR-to-screen blits from multiple GMRFBs onto multiple screens
|
||||
* - SVGA3D-to-screen blits, with scaling, onto multiple screens
|
||||
* - screen-to-GMR blits
|
||||
* - Video Overlay with GMRs and Screen Objects
|
||||
*
|
||||
* For a complete test of Screen Object, several other tests are also
|
||||
* necessary:
|
||||
*
|
||||
* - Per-screen cursors (screen-multimon test)
|
||||
* - Screen creation, destruction, and redefinition (screen-multimon)
|
||||
* - Checkpointing
|
||||
*
|
||||
* This example requires SVGA Screen Object and SVGA3D support.
|
||||
*/
|
||||
|
||||
#include "svga.h"
|
||||
#include "svga3d.h"
|
||||
#include "svga3dutil.h"
|
||||
#include "matrix.h"
|
||||
#include "math.h"
|
||||
#include "gmr.h"
|
||||
#include "screen.h"
|
||||
#include "intr.h"
|
||||
#include "screendraw.h"
|
||||
#include "datafile.h"
|
||||
|
||||
/*
|
||||
* 3D Rendering Definitions
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
float position[3];
|
||||
uint32 color;
|
||||
} MyVertex;
|
||||
|
||||
uint32 vertexSid, indexSid;
|
||||
|
||||
const int surfWidth = 1024;
|
||||
const int surfHeight = 512;
|
||||
|
||||
SVGA3dSurfaceImageId colorImage;
|
||||
SVGA3dSurfaceImageId depthImage;
|
||||
|
||||
static const MyVertex vertexData[] = {
|
||||
{ {-1, -1, -1}, 0xFFFFFFFF },
|
||||
{ {-1, -1, 1}, 0xFFFFFF00 },
|
||||
{ {-1, 1, -1}, 0xFFFF00FF },
|
||||
{ {-1, 1, 1}, 0xFFFF0000 },
|
||||
{ { 1, -1, -1}, 0xFF00FFFF },
|
||||
{ { 1, -1, 1}, 0xFF00FF00 },
|
||||
{ { 1, 1, -1}, 0xFF0000FF },
|
||||
{ { 1, 1, 1}, 0xFF000000 },
|
||||
};
|
||||
|
||||
#define QUAD(a,b,c,d) a, b, d, d, c, a
|
||||
static const uint16 indexData[] = {
|
||||
QUAD(0,1,2,3), // -X
|
||||
QUAD(4,5,6,7), // +X
|
||||
QUAD(0,1,4,5), // -Y
|
||||
QUAD(2,3,6,7), // +Y
|
||||
QUAD(0,2,4,6), // -Z
|
||||
QUAD(1,3,5,7), // +Z
|
||||
};
|
||||
#undef QUAD
|
||||
|
||||
const uint32 numTriangles = arraysize(indexData) / 3;
|
||||
|
||||
|
||||
/*
|
||||
* initScreens --
|
||||
*
|
||||
* Set up our Screen Objects, and label them.
|
||||
*/
|
||||
|
||||
void
|
||||
initScreens(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Define two screens:
|
||||
*
|
||||
* +-------+
|
||||
* |0 |
|
||||
* | |
|
||||
* +--+----+-+
|
||||
* |1 |
|
||||
* +------+
|
||||
*
|
||||
* The screen 0 is 799x405, the screen 1 is 600x200.
|
||||
* Neither screen is rooted at 0,0.
|
||||
*/
|
||||
|
||||
SVGAScreenObject screens[] = {
|
||||
{
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 0,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT | SVGA_SCREEN_IS_PRIMARY,
|
||||
.size = { 799, 405 },
|
||||
.root = { -1234, 5678 },
|
||||
},
|
||||
{
|
||||
.structSize = sizeof(SVGAScreenObject),
|
||||
.id = 1,
|
||||
.flags = SVGA_SCREEN_HAS_ROOT,
|
||||
.size = { 600, 200 },
|
||||
.root = { -1234 + 302, 5678 + 405 },
|
||||
},
|
||||
};
|
||||
|
||||
for (i = 0; i < arraysize(screens); i++) {
|
||||
const SVGAScreenObject *screen = &screens[i];
|
||||
|
||||
Screen_Define(screen);
|
||||
|
||||
ScreenDraw_SetScreen(screen->id, screen->size.width, screen->size.height);
|
||||
Console_Clear();
|
||||
Console_MoveTo(5, screen->size.height - 20);
|
||||
Console_Format("Screen #%d\n", screen->id);
|
||||
ScreenDraw_Border(0, 0, screen->size.width, screen->size.height, 0xFF0000, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* initOverlays --
|
||||
*
|
||||
* Set up a video overlay using a non-default screen ID and a
|
||||
* system memory GMR. These are both new features included in
|
||||
* the Screen Object extension.
|
||||
*/
|
||||
|
||||
void
|
||||
initOverlays(void)
|
||||
{
|
||||
/*
|
||||
* A video test card, in UYVY format.
|
||||
*
|
||||
* It's a 720x576 pixel 4:3 aspect test card designed by Barney
|
||||
* Wol. (http://www.barney-wol.net/testpatterns)
|
||||
*
|
||||
* Decompress it into a new system memory GMR.
|
||||
*/
|
||||
DECLARE_DATAFILE(testCardFile, wols4x3_yuv_z);
|
||||
|
||||
const uint32 gmrId = 1;
|
||||
const int videoWidth = 720;
|
||||
const int videoHeight = 576;
|
||||
const int videoBytes = videoWidth * videoHeight * 2;
|
||||
const int videoPages = (videoBytes + PAGE_MASK) / PAGE_SIZE;
|
||||
|
||||
PPN videoFirstPage = GMR_DefineContiguous(gmrId, videoPages);
|
||||
DataFile_Decompress(testCardFile, PPN_POINTER(videoFirstPage), videoBytes);
|
||||
|
||||
/*
|
||||
* Display the video using Screen 1's coordinate system, but
|
||||
* actually have it overlap the right edge of the line segment that
|
||||
* screens 0 and 1 share.
|
||||
*/
|
||||
|
||||
SVGAOverlayUnit overlay = {
|
||||
.enabled = TRUE,
|
||||
.format = VMWARE_FOURCC_UYVY,
|
||||
.flags = SVGA_VIDEO_FLAG_COLORKEY,
|
||||
.colorKey = 0x000000,
|
||||
.width = videoWidth,
|
||||
.height = videoHeight,
|
||||
.srcWidth = videoWidth,
|
||||
.srcHeight = videoHeight,
|
||||
.pitches[0] = videoWidth * 2,
|
||||
|
||||
.dataGMRId = gmrId,
|
||||
.dataOffset = 0,
|
||||
|
||||
.dstX = 220,
|
||||
.dstY = -100,
|
||||
.dstWidth = 320,
|
||||
.dstHeight = 240,
|
||||
.dstScreenId = 1,
|
||||
};
|
||||
|
||||
SVGA_VideoSetAllRegs(0, &overlay, SVGA_VIDEO_DST_SCREEN_ID);
|
||||
|
||||
/*
|
||||
* XXX: Flush twice, to work around a bug in legacy backends.
|
||||
* New SWB backends don't have this problem, but it's harmless.
|
||||
*/
|
||||
SVGA_VideoFlush(0);
|
||||
SVGA_VideoFlush(0);
|
||||
|
||||
/*
|
||||
* Draw a border around the video
|
||||
*/
|
||||
ScreenDraw_SetScreen(1, 0, 0);
|
||||
ScreenDraw_Border(overlay.dstX - 1, overlay.dstY - 1,
|
||||
overlay.dstX + overlay.dstWidth + 1,
|
||||
overlay.dstY + overlay.dstHeight + 1,
|
||||
0xFFFF00, 1);
|
||||
|
||||
/*
|
||||
* Some text to explain the video
|
||||
*/
|
||||
Console_MoveTo(overlay.dstX, overlay.dstY + overlay.dstHeight + 5);
|
||||
Console_Format("Video overlay on Screen 1, sysmem GMR");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* setup3D --
|
||||
*
|
||||
* Allocate 3D resources that are used by draw3D() and cubeLoop().
|
||||
*/
|
||||
|
||||
void
|
||||
setup3D(void)
|
||||
{
|
||||
/*
|
||||
* Set up some 3D resources: A color buffer, depth buffer, vertex
|
||||
* buffer, and index buffer. Load the VB and IB with data for a
|
||||
* cube with unique vertex colors.
|
||||
*/
|
||||
|
||||
colorImage.sid = SVGA3DUtil_DefineSurface2D(surfWidth, surfHeight, SVGA3D_X8R8G8B8);
|
||||
depthImage.sid = SVGA3DUtil_DefineSurface2D(surfWidth, surfHeight, SVGA3D_Z_D16);
|
||||
|
||||
SVGA3D_DefineContext(CID);
|
||||
|
||||
vertexSid = SVGA3DUtil_DefineStaticBuffer(vertexData, sizeof vertexData);
|
||||
indexSid = SVGA3DUtil_DefineStaticBuffer(indexData, sizeof indexData);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* drawCube --
|
||||
*
|
||||
* Draw a cube with the specified viewport and background color.
|
||||
* Every time we draw a cube, it rotates a little.
|
||||
*/
|
||||
|
||||
void
|
||||
drawCube(SVGA3dRect *viewport, uint32 bgColor)
|
||||
{
|
||||
static float angle = 0.5f;
|
||||
SVGA3dRect *rect;
|
||||
Matrix perspectiveMat;
|
||||
SVGA3dTextureState *ts;
|
||||
SVGA3dRenderState *rs;
|
||||
|
||||
SVGA3D_SetRenderTarget(CID, SVGA3D_RT_COLOR0, &colorImage);
|
||||
SVGA3D_SetRenderTarget(CID, SVGA3D_RT_DEPTH, &depthImage);
|
||||
|
||||
SVGA3D_SetViewport(CID, viewport);
|
||||
SVGA3D_SetZRange(CID, 0.0f, 1.0f);
|
||||
|
||||
SVGA3D_BeginSetRenderState(CID, &rs, 5);
|
||||
{
|
||||
rs[0].state = SVGA3D_RS_BLENDENABLE;
|
||||
rs[0].uintValue = FALSE;
|
||||
|
||||
rs[1].state = SVGA3D_RS_ZENABLE;
|
||||
rs[1].uintValue = TRUE;
|
||||
|
||||
rs[2].state = SVGA3D_RS_ZWRITEENABLE;
|
||||
rs[2].uintValue = TRUE;
|
||||
|
||||
rs[3].state = SVGA3D_RS_ZFUNC;
|
||||
rs[3].uintValue = SVGA3D_CMP_LESS;
|
||||
|
||||
rs[4].state = SVGA3D_RS_LIGHTINGENABLE;
|
||||
rs[4].uintValue = FALSE;
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
SVGA3D_BeginSetTextureState(CID, &ts, 4);
|
||||
{
|
||||
ts[0].stage = 0;
|
||||
ts[0].name = SVGA3D_TS_BIND_TEXTURE;
|
||||
ts[0].value = SVGA3D_INVALID_ID;
|
||||
|
||||
ts[1].stage = 0;
|
||||
ts[1].name = SVGA3D_TS_COLOROP;
|
||||
ts[1].value = SVGA3D_TC_SELECTARG1;
|
||||
|
||||
ts[2].stage = 0;
|
||||
ts[2].name = SVGA3D_TS_COLORARG1;
|
||||
ts[2].value = SVGA3D_TA_DIFFUSE;
|
||||
|
||||
ts[3].stage = 0;
|
||||
ts[3].name = SVGA3D_TS_ALPHAARG1;
|
||||
ts[3].value = SVGA3D_TA_DIFFUSE;
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
/*
|
||||
* Clear unused areas of the surface to white
|
||||
*/
|
||||
SVGA3D_BeginClear(CID, SVGA3D_CLEAR_COLOR | SVGA3D_CLEAR_DEPTH,
|
||||
0xFFFFFFFF, 1.0f, 0, &rect, 1);
|
||||
rect->x = 0;
|
||||
rect->y = 0;
|
||||
rect->w = surfWidth;
|
||||
rect->w = surfHeight;
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
/*
|
||||
* Draw the background color
|
||||
*/
|
||||
SVGA3D_BeginClear(CID, SVGA3D_CLEAR_COLOR | SVGA3D_CLEAR_DEPTH,
|
||||
bgColor | 0x42000000, 1.0f, 0, &rect, 1);
|
||||
*rect = *viewport;
|
||||
SVGA_FIFOCommitAll();
|
||||
|
||||
SVGA3dVertexDecl *decls;
|
||||
SVGA3dPrimitiveRange *ranges;
|
||||
Matrix view;
|
||||
|
||||
Matrix_Copy(view, gIdentityMatrix);
|
||||
Matrix_Scale(view, 0.5, 0.5, 0.5, 1.0);
|
||||
Matrix_RotateX(view, 30.0 * M_PI / 180.0);
|
||||
Matrix_RotateY(view, angle);
|
||||
Matrix_Translate(view, 0, 0, 2.5);
|
||||
|
||||
angle += 0.01;
|
||||
|
||||
Matrix_Perspective(perspectiveMat, 45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_WORLD, gIdentityMatrix);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_PROJECTION, perspectiveMat);
|
||||
SVGA3D_SetTransform(CID, SVGA3D_TRANSFORM_VIEW, view);
|
||||
|
||||
SVGA3D_BeginDrawPrimitives(CID, &decls, 2, &ranges, 1);
|
||||
{
|
||||
decls[0].identity.type = SVGA3D_DECLTYPE_FLOAT3;
|
||||
decls[0].identity.usage = SVGA3D_DECLUSAGE_POSITION;
|
||||
decls[0].array.surfaceId = vertexSid;
|
||||
decls[0].array.stride = sizeof(MyVertex);
|
||||
decls[0].array.offset = offsetof(MyVertex, position);
|
||||
|
||||
decls[1].identity.type = SVGA3D_DECLTYPE_D3DCOLOR;
|
||||
decls[1].identity.usage = SVGA3D_DECLUSAGE_COLOR;
|
||||
decls[1].array.surfaceId = vertexSid;
|
||||
decls[1].array.stride = sizeof(MyVertex);
|
||||
decls[1].array.offset = offsetof(MyVertex, color);
|
||||
|
||||
ranges[0].primType = SVGA3D_PRIMITIVE_TRIANGLELIST;
|
||||
ranges[0].primitiveCount = numTriangles;
|
||||
ranges[0].indexArray.surfaceId = indexSid;
|
||||
ranges[0].indexArray.stride = sizeof(uint16);
|
||||
ranges[0].indexWidth = sizeof(uint16);
|
||||
}
|
||||
SVGA_FIFOCommitAll();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* draw3D --
|
||||
*
|
||||
* Set up some 3D resources, and draw a simple cube scene to
|
||||
* several places on the frontbuffer. Each cube is drawn using a
|
||||
* distinct background color.
|
||||
*/
|
||||
|
||||
void
|
||||
draw3D(void)
|
||||
{
|
||||
/*
|
||||
* Scenes to render
|
||||
*/
|
||||
const int dstWidth = 160;
|
||||
const int dstHeight = 120;
|
||||
|
||||
struct {
|
||||
uint32 screenId;
|
||||
SVGA3dRect viewport;
|
||||
int x, y;
|
||||
uint32 bgColor;
|
||||
const char *label;
|
||||
} scenes[] = {
|
||||
/*
|
||||
* These scenes all use different but overlapping parts of the
|
||||
* render target, so it's quite obvious if the wrong image is
|
||||
* being displayed- either you'll see part of the frame
|
||||
* overwritten by a different frame, or the image will be
|
||||
* misaligned.
|
||||
*/
|
||||
{ 0, { 123, 65, 160, 120 }, 320, 20 + 145 * 0, 0x800000, "Red" }, // Non-scaled
|
||||
{ 0, { 150, 82, 320, 240 }, 320, 20 + 145 * 1, 0x008000, "Green" }, // Scaled
|
||||
{ 0, { 85, 32, 400, 300 }, 320, 20 + 145 * 2, 0x000080, "Blue" }, // Scaled
|
||||
{ 0, { 160, 40, 160, 120 }, 320, 20 + 145 * 3, 0xae3aff, "Purple" }, // Non-scaled
|
||||
};
|
||||
|
||||
int i;
|
||||
for (i = 0; i < arraysize(scenes); i++) {
|
||||
drawCube(&scenes[i].viewport, scenes[i].bgColor);
|
||||
|
||||
SVGASignedRect srcRect = { scenes[i].viewport.x,
|
||||
scenes[i].viewport.y,
|
||||
scenes[i].viewport.x + scenes[i].viewport.w,
|
||||
scenes[i].viewport.y + scenes[i].viewport.h };
|
||||
SVGASignedRect dstRect = { scenes[i].x,
|
||||
scenes[i].y,
|
||||
scenes[i].x + dstWidth,
|
||||
scenes[i].y + dstHeight };
|
||||
|
||||
/*
|
||||
* Draw some text underneath the Present. If you can see this
|
||||
* text, something is wrong.
|
||||
*/
|
||||
ScreenDraw_SetScreen(scenes[i].screenId, 0, 0);
|
||||
Console_MoveTo(dstRect.left + 10, (dstRect.top + dstRect.bottom) / 2);
|
||||
Console_WriteString("XXX: 2D!");
|
||||
|
||||
/*
|
||||
* Present our scene to the front buffer using the new surface-to-screen blit.
|
||||
*/
|
||||
SVGA3D_BlitSurfaceToScreen(&colorImage, &srcRect,
|
||||
scenes[i].screenId, &dstRect);
|
||||
|
||||
/*
|
||||
* Draw on the frontbuffer to label this scene, and draw
|
||||
* a border around it.
|
||||
*/
|
||||
ScreenDraw_SetScreen(scenes[i].screenId, 0, 0);
|
||||
Console_MoveTo(dstRect.left, dstRect.top);
|
||||
Console_WriteString(scenes[i].label);
|
||||
ScreenDraw_Border(dstRect.left - 1, dstRect.top - 1,
|
||||
dstRect.right + 1, dstRect.bottom + 1,
|
||||
0xFFFF00, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* cubeLoop --
|
||||
*
|
||||
* Draw a spinning cube in an infinite loop, using the same
|
||||
* backbuffer and other resources that we used on the earlier
|
||||
* cubes.
|
||||
*/
|
||||
|
||||
void
|
||||
cubeLoop(void)
|
||||
{
|
||||
/* Draw a label */
|
||||
ScreenDraw_SetScreen(1, 0, 0);
|
||||
Console_MoveTo(230, -265);
|
||||
Console_WriteString("Spinning, Orange:");
|
||||
|
||||
while (1) {
|
||||
SVGA3dRect viewport = { 0, 0, 160, 120 };
|
||||
SVGASignedRect srcRect = { 0, 0, 160, 120 };
|
||||
SVGASignedRect dstRect = { 230, -245, 230+160, -245+120 };
|
||||
|
||||
drawCube(&viewport, 0xd9a54a);
|
||||
SVGA3D_BlitSurfaceToScreen(&colorImage, &srcRect, 1, &dstRect);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* complementBytes --
|
||||
*
|
||||
* For a range of bytes, do an in-place complement. Every bit is inverted.
|
||||
*/
|
||||
|
||||
void
|
||||
complementBytes(uint8 *ptr, uint32 count)
|
||||
{
|
||||
while (count) {
|
||||
*ptr ^= 0xFF;
|
||||
ptr++;
|
||||
count--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* doBlits --
|
||||
*
|
||||
* Use screen-to-GMR and GMR-to-screen blits in order to copy from
|
||||
* one part of the screen to another. To prove that the guest can
|
||||
* access the GMR data, we invert part of the image.
|
||||
*/
|
||||
|
||||
void
|
||||
doBlits()
|
||||
{
|
||||
struct {
|
||||
SVGAGMRImageFormat format;
|
||||
int screenId;
|
||||
int srcx, srcy;
|
||||
int dstx, dsty;
|
||||
int labelx, labely;
|
||||
const char *label;
|
||||
} blits[] = {
|
||||
/*
|
||||
* Copy the red image, using 24-bit color, and label the bottom
|
||||
* half (inverse) as Cyan.
|
||||
*/
|
||||
{
|
||||
{{{32, 24}}}, 0,
|
||||
319, 19, // src
|
||||
134, 19, // dest
|
||||
1, 103, // label
|
||||
"Cyan",
|
||||
},
|
||||
|
||||
/*
|
||||
* Copy the green image using 15-bit color, and label the bottom as pink.
|
||||
*/
|
||||
{
|
||||
{{{16, 15}}}, 0,
|
||||
319, 164, // src
|
||||
134, 164, // dest
|
||||
1, 103, // label
|
||||
"Pink",
|
||||
},
|
||||
|
||||
/*
|
||||
* Try to copy the blue image. The screen-to-GMR blit will fail, since
|
||||
* we don't support screen-to-GMR blits that aren't contained within one
|
||||
* screen. So we'll end up drawing gray (the color we clear the buffer with)
|
||||
* and a ligher gray on the bottom where we invert.
|
||||
*/
|
||||
{
|
||||
{{{32, 24}}}, 0,
|
||||
319, 309, // src
|
||||
134, 309, // dest
|
||||
1, 1, // label
|
||||
"Gray, no cube",
|
||||
},
|
||||
|
||||
/*
|
||||
* Now try to copy part of the video overlay from Screen 2.
|
||||
* We should get the text and border, but no video.
|
||||
*/
|
||||
{
|
||||
{{{16, 16}}}, 1,
|
||||
200, 70, // src
|
||||
230, -400, // dest
|
||||
0, 0, // label
|
||||
"Frame & Text, No Video",
|
||||
},
|
||||
};
|
||||
|
||||
const int width = 162;
|
||||
const int height = 122;
|
||||
const SVGASignedPoint gmrOrigin = { 123, 4 };
|
||||
|
||||
const int maxBytesPerLine = (width + gmrOrigin.x) * 4;
|
||||
const int numBytes = maxBytesPerLine * (height + gmrOrigin.y);
|
||||
const int offset = 12345;
|
||||
const int numPages = (offset + numBytes + PAGE_MASK) / PAGE_SIZE;
|
||||
|
||||
const int gmrId = 2;
|
||||
PPN firstPage = GMR_DefineContiguous(gmrId, numPages);
|
||||
|
||||
int i;
|
||||
for (i = 0; i < arraysize(blits); i++) {
|
||||
|
||||
/* Wait for any previous DMA to finish */
|
||||
SVGA_SyncToFence(SVGA_InsertFence());
|
||||
|
||||
/* Clear the buffer to 0x42 (will appear dark grey) */
|
||||
memset(PPN_POINTER(firstPage), 0x42, numPages * PAGE_SIZE);
|
||||
|
||||
SVGAGuestPtr gPtr = { gmrId, offset };
|
||||
uint32 bytesPerLine = blits[i].format.bitsPerPixel * width / 8;
|
||||
Screen_DefineGMRFB(gPtr, bytesPerLine, blits[i].format);
|
||||
|
||||
SVGASignedPoint srcPoint = { blits[i].srcx, blits[i].srcy };
|
||||
SVGASignedPoint dstPoint = { blits[i].dstx, blits[i].dsty };
|
||||
SVGASignedRect srcRect = { srcPoint.x, srcPoint.y,
|
||||
srcPoint.x + width, srcPoint.y + height };
|
||||
SVGASignedRect dstRect = { dstPoint.x, dstPoint.y,
|
||||
dstPoint.x + width, dstPoint.y + height };
|
||||
|
||||
Screen_BlitToGMRFB(&gmrOrigin, &srcRect, blits[i].screenId);
|
||||
|
||||
/* Wait for the DMA to finish */
|
||||
SVGA_SyncToFence(SVGA_InsertFence());
|
||||
|
||||
/* Invert the colors in the bottom half of the image */
|
||||
uint8 *pixels = (offset +
|
||||
bytesPerLine * (gmrOrigin.y + height/2) +
|
||||
blits[i].format.bitsPerPixel * gmrOrigin.x / 8 +
|
||||
(uint8*)PPN_POINTER(firstPage));
|
||||
complementBytes(pixels, bytesPerLine * height/2);
|
||||
|
||||
/* Copy it back */
|
||||
Screen_BlitFromGMRFB(&gmrOrigin, &dstRect, blits[i].screenId);
|
||||
|
||||
/* Draw a label for the bottom half */
|
||||
ScreenDraw_SetScreen(blits[i].screenId, 0, 0);
|
||||
Console_MoveTo(dstRect.left + blits[i].labelx, dstRect.top + blits[i].labely);
|
||||
Console_WriteString(blits[i].label);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main --
|
||||
*
|
||||
* Initialization, main loop.
|
||||
*/
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
Intr_Init();
|
||||
Intr_SetFaultHandlers(SVGA_DefaultFaultHandler);
|
||||
SVGA_Init();
|
||||
GMR_Init();
|
||||
Heap_Reset();
|
||||
SVGA_SetMode(0, 0, 32);
|
||||
SVGA3D_Init();
|
||||
Screen_Init();
|
||||
ScreenDraw_Init(0);
|
||||
|
||||
initScreens();
|
||||
setup3D();
|
||||
draw3D();
|
||||
initOverlays();
|
||||
doBlits();
|
||||
cubeLoop();
|
||||
|
||||
return 0;
|
||||
}
|