xenocara/lib/libXpm/src/amigax.h
2006-11-25 17:32:04 +00:00

152 lines
4.2 KiB
C

/*
* Copyright (C) 1996 Lorens Younes
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* Lorens Younes BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Lorens Younes shall not be
* used in advertising or otherwise to promote the sale, use or other dealings
* in this Software without prior written authorization from Lorens Younes.
*/
/*****************************************************************************\
* amigax.h: *
* *
* XPM library *
* Emulates some Xlib functionality for Amiga. *
* *
* Developed by Lorens Younes (d93-hyo@nada.kth.se) 7/95 *
* Revised 4/96 *
\*****************************************************************************/
#ifndef AMIGA_X
#define AMIGA_X
#include <intuition/screens.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#define Success 0
/* really never used */
#define ZPixmap 2
#define Bool int
#define Status int
#define True 1
#define False 0
typedef struct ColorMap *Colormap;
typedef void *Visual;
typedef struct {
int width, height;
struct RastPort *rp;
} XImage;
typedef struct {
unsigned long pixel;
unsigned short red, green, blue;
} XColor;
typedef struct Screen Display;
#define XGrabServer(dpy) (Forbid ())
#define XUngrabServer(dpy) (Permit ())
#define XDefaultScreen(dpy) (0)
#define XDefaultVisual(dpy, scr) (NULL)
#define XDefaultColormap(dpy, scr) (dpy->ViewPort.ColorMap)
#define XDefaultDepth(dpy, scr) (dpy->RastPort.BitMap->Depth)
#define XCreateImage(dpy, vi, depth, format, offset, data, width, height, pad, bpl) \
(AllocXImage (width, height, depth))
#define XDestroyImage(img) (FreeXImage (img))
#define XAllocColor(dpy, cm, xc) \
(AllocBestPen (cm, xc, PRECISION_EXACT, True))
#define XFreeColors(dpy, cm, pixels, npixels, planes) \
(FreePens (cm, pixels, npixels))
#define XParseColor(dpy, cm, spec, exact_def_return) \
(ParseColor (spec, exact_def_return))
#define XQueryColor(dpy, cm, def_in_out) \
(QueryColor(cm, def_in_out))
#define XQueryColors(dpy, cm, defs_in_out, ncolors) \
(QueryColors(cm, defs_in_out, ncolors))
XImage *
AllocXImage (
unsigned int width,
unsigned int height,
unsigned int depth);
int
FreeXImage (
XImage *ximage);
int
XPutPixel (
XImage *ximage,
int x,
int y,
unsigned long pixel);
Status
AllocBestPen (
Colormap colormap,
XColor *screen_in_out,
unsigned long precision,
Bool fail_if_bad);
int
FreePens (
Colormap colormap,
unsigned long *pixels,
int npixels);
Status
ParseColor (
char *spec,
XColor *exact_def_return);
int
QueryColor (
Colormap colormap,
XColor *def_in_out);
int
QueryColors (
Colormap colormap,
XColor *defs_in_out,
int ncolors);
#endif /* AMIGA_X */