mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-04 20:02:21 +03:00
155 lines
4.4 KiB
C
155 lines
4.4 KiB
C
/*
|
|
* Copyright 2005 Richard Wilson <info@tinct.net>
|
|
*
|
|
* This file is part of NetSurf, http://www.netsurf-browser.org/
|
|
*
|
|
* NetSurf is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* NetSurf is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/*
|
|
* Complete details on using Tinct are available from http://www.tinct.net.
|
|
*/
|
|
|
|
/** \file
|
|
* Tinct SWI numbers and flags for version 0.11
|
|
*/
|
|
|
|
#ifndef _NETSURF_RISCOS_TINCT_H_
|
|
#define _NETSURF_RISCOS_TINCT_H_
|
|
|
|
|
|
/**
|
|
* Plots an alpha-blended sprite at the specified coordinates.
|
|
*
|
|
* -> R2 Sprite pointer
|
|
* R3 X coordinate
|
|
* R4 Y coordinate
|
|
* R7 Flag word
|
|
*/
|
|
#define Tinct_PlotAlpha 0x57240
|
|
|
|
|
|
/**
|
|
* Plots a scaled alpha-blended sprite at the specified coordinates.
|
|
*
|
|
* -> R2 Sprite pointer
|
|
* R3 X coordinate
|
|
* R4 Y coordinate
|
|
* R5 Scaled sprite width
|
|
* R6 Scaled sprite height
|
|
* R7 Flag word
|
|
*/
|
|
#define Tinct_PlotScaledAlpha 0x57241
|
|
|
|
|
|
/**
|
|
* Plots a sprite at the specified coordinates with a constant 0xff value for
|
|
* the alpha channel, ie without a mask.
|
|
*
|
|
* -> R2 Sprite pointer
|
|
* R3 X coordinate
|
|
* R4 Y coordinate
|
|
* R7 Flag word
|
|
*/
|
|
#define Tinct_Plot 0x57242
|
|
|
|
/**
|
|
* Plots a scaled sprite at the specified coordinates with a constant 0xff value
|
|
* for the alpha channel, ie without a mask.
|
|
*
|
|
* -> R2 Sprite pointer
|
|
* R3 X coordinate
|
|
* R4 Y coordinate
|
|
* R5 Scaled sprite width
|
|
* R6 Scaled sprite height
|
|
* R7 Flag word
|
|
*/
|
|
#define Tinct_PlotScaled 0x57243
|
|
|
|
|
|
/**
|
|
* Converts a paletted sprite into its 32bpp equivalent. Sufficient memory must
|
|
* have previously been allocated for the sprite (44 + width * height * 4).
|
|
* As sprites with 16bpp or 32bpp do not have palettes, conversion cannot be
|
|
* performed on these variants. All sprites must be supplied with a full palette,
|
|
* eg 8bpp must have 256 palette entries.
|
|
*
|
|
* -> R2 Source sprite pointer
|
|
* R3 Destination sprite pointer
|
|
*/
|
|
#define Tinct_ConvertSprite 0x57244
|
|
|
|
|
|
/**
|
|
* Returns the features available to the caller by specifying bits in the flag
|
|
* word. The features available are unique for each mode, although the current
|
|
* version of Tinct supports the same subset of features for all modes.
|
|
*
|
|
* -> R0 Feature to test for, or 0 for all features
|
|
* <- R0 Features available
|
|
*/
|
|
#define Tinct_AvailableFeatures 0x57245
|
|
|
|
|
|
/**
|
|
* Compresses an image using a fast algorithm. Sufficient memory must have been
|
|
* previously allocated for the maximum possible compressed size. This value is
|
|
* equal to 28 + (width * height * 4) * 33 / 32.
|
|
*
|
|
* -> R0 Source sprite pointer
|
|
* R2 Output data buffer
|
|
* R3 Output bytes available
|
|
* R7 Flag word (currently 0)
|
|
* <- R0 Size of compressed data
|
|
*/
|
|
#define Tinct_Compress 0x57246
|
|
|
|
|
|
/**
|
|
* Decompresses an image previously compressed. Sufficient memory must have been
|
|
* previously allocated for the decompressed data (44 + width * height * 4) where
|
|
* width and height are available at +0 and +4 of the compressed data respectively.
|
|
*
|
|
* -> R0 Input data buffer
|
|
* R2 Output data buffer
|
|
* R7 Flag word (currently 0)
|
|
* <- R0 Size of decompressed data
|
|
*/
|
|
#define Tinct_Decompress 0x57247
|
|
|
|
|
|
/* Plotting flags
|
|
*/
|
|
#define tinct_READ_SCREEN_BASE 0x01 /** <-- Use when hardware scrolling */
|
|
#define tinct_BILINEAR_FILTER 0x02 /** <-- Perform bi-linear filtering */
|
|
#define tinct_DITHER 0x04 /** <-- Perform dithering */
|
|
#define tinct_ERROR_DIFFUSE 0x08 /** <-- Perform error diffusion */
|
|
#define tinct_DITHER_INVERTED 0x0C /** <-- Perform dithering with inverted pattern */
|
|
#define tinct_FILL_HORIZONTALLY 0x10 /** <-- Horizontally fill clipping region with image */
|
|
#define tinct_FILL_VERTICALLY 0x20 /** <-- Vertically fill clipping region with image */
|
|
#define tinct_FORCE_PALETTE_READ 0x40 /** <-- Use after a palette change when out of the desktop */
|
|
#define tinct_USE_OS_SPRITE_OP 0x80 /** <-- Use when printing */
|
|
|
|
/* Compression flags
|
|
*/
|
|
#define tinct_OPAQUE_IMAGE 0x01 /** <-- Image is opaque, compress further */
|
|
|
|
/* Shifts
|
|
*/
|
|
#define tinct_BACKGROUND_SHIFT 0x08
|
|
|
|
/* Sprite mode
|
|
*/
|
|
#define tinct_SPRITE_MODE (os_mode)0x301680b5
|
|
#endif
|