2017-04-25 14:41:48 +02:00
|
|
|
/*
|
|
|
|
|
* grX11Int.h --
|
|
|
|
|
*
|
|
|
|
|
* Internal definitions for grX11su[1..5].c.
|
|
|
|
|
*
|
|
|
|
|
* NOTE: In order for the these defs to work correctly, this file
|
|
|
|
|
* (grXInt.h) must be included after all the Magic .h files and before
|
|
|
|
|
* the X .h files.
|
|
|
|
|
*/
|
|
|
|
|
|
2024-10-16 08:26:44 +02:00
|
|
|
#ifndef _MAGIC__GRAPHICS__GRX11INT_H
|
|
|
|
|
#define _MAGIC__GRAPHICS__GRX11INT_H
|
|
|
|
|
|
2017-04-25 14:41:48 +02:00
|
|
|
#include "utils/magic.h"
|
|
|
|
|
|
|
|
|
|
/* Constants
|
|
|
|
|
*/
|
|
|
|
|
#define M_WIDTH 1023
|
|
|
|
|
#define M_HEIGHT 750
|
|
|
|
|
|
|
|
|
|
#define MAX_CURSORS 32 /* Maximum number of programmable cursors */
|
|
|
|
|
|
|
|
|
|
#define GR_DEFAULT_FONT "9x15"
|
|
|
|
|
#define X11_BATCH_SIZE 10000
|
|
|
|
|
|
|
|
|
|
#define grMagicToX(y) ( grCurrent.mw->w_allArea.r_ytop - (y))
|
|
|
|
|
#define grXToMagic(y) ( grCurrent.mw->w_allArea.r_ytop - (y))
|
|
|
|
|
|
|
|
|
|
#ifdef OLD_R2_FONTS
|
|
|
|
|
/*
|
|
|
|
|
* Some machines still run release 2 of X.
|
|
|
|
|
*/
|
|
|
|
|
# define X_FONT_SMALL "vg-13"
|
|
|
|
|
# define X_FONT_MEDIUM "fg-18"
|
|
|
|
|
# define X_FONT_LARGE "vrb-25"
|
|
|
|
|
# define X_FONT_XLARGE "vrb-37"
|
|
|
|
|
#else
|
|
|
|
|
/*
|
|
|
|
|
* Our default fonts for X11. (Release 3 fonts.)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
# define X_FONT_SMALL "-*-helvetica-medium-r-normal--10-*-75-75-p-*-iso8859-*"
|
|
|
|
|
# define X_FONT_MEDIUM "-*-helvetica-medium-r-normal--14-*-75-75-p-*-iso8859-*"
|
|
|
|
|
# define X_FONT_LARGE "-*-helvetica-medium-r-normal--18-*-75-75-p-*-iso8859-*"
|
|
|
|
|
# define X_FONT_XLARGE "-*-helvetica-medium-r-normal--24-*-75-75-p-*-iso8859-*"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* Macro for conversion between X and Magic coordinates
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/* Current settings for X function parameters */
|
|
|
|
|
typedef struct {
|
|
|
|
|
XFontStruct *font;
|
|
|
|
|
Cursor cursor;
|
|
|
|
|
int fontSize;
|
|
|
|
|
int maskmod;
|
|
|
|
|
Window window;
|
|
|
|
|
MagWindow *mw;
|
|
|
|
|
} GR_CURRENT;
|
|
|
|
|
|
|
|
|
|
/* X11 Display settings determined by the visual */
|
|
|
|
|
typedef struct {
|
|
|
|
|
unsigned long basepixel;
|
|
|
|
|
unsigned long planes[32];
|
|
|
|
|
int depth;
|
|
|
|
|
int planeCount;
|
|
|
|
|
int colorCount;
|
|
|
|
|
int realColors;
|
|
|
|
|
int red_mask;
|
|
|
|
|
int green_mask;
|
|
|
|
|
int blue_mask;
|
|
|
|
|
} GR_DISPLAY;
|
|
|
|
|
|
|
|
|
|
extern Display *grXdpy;
|
|
|
|
|
extern Colormap grXcmap;
|
|
|
|
|
extern int grXscrn;
|
|
|
|
|
extern unsigned int grClass;
|
|
|
|
|
extern unsigned long grPixels[];
|
|
|
|
|
extern unsigned long grPlanes[];
|
|
|
|
|
extern GR_CURRENT grCurrent;
|
|
|
|
|
extern GR_DISPLAY grDisplay;
|
|
|
|
|
extern GC grGCFill, grGCText, grGCDraw, grGCCopy, grGCGlyph;
|
|
|
|
|
|
|
|
|
|
extern bool grx11GetCursorRootPos();
|
|
|
|
|
extern bool grx11DrawGrid();
|
|
|
|
|
extern void GrX11EnableTablet();
|
|
|
|
|
extern void GrX11DisableTablet();
|
|
|
|
|
extern void GrX11SetCMap();
|
|
|
|
|
extern void grx11PutText();
|
|
|
|
|
extern void grx11FontText();
|
|
|
|
|
extern void grx11DefineCursor();
|
|
|
|
|
extern void GrX11SetCursor();
|
2025-07-17 23:19:16 +02:00
|
|
|
extern int GrX11TextSize();
|
2017-04-25 14:41:48 +02:00
|
|
|
extern void GrX11DrawGlyph();
|
|
|
|
|
extern void GrX11BitBlt();
|
|
|
|
|
extern void NullBitBlt();
|
|
|
|
|
extern int GrX11ReadPixel();
|
|
|
|
|
extern void grx11DrawLine();
|
|
|
|
|
extern void grx11SetLineStyle();
|
|
|
|
|
extern void grx11SetCharSize();
|
|
|
|
|
extern void grx11SetWMandC();
|
|
|
|
|
extern void grx11FillRect();
|
|
|
|
|
extern void grx11RectConvert();
|
|
|
|
|
extern void grx11FillPolygon();
|
|
|
|
|
|
|
|
|
|
extern void grx11FreeBackingStore();
|
|
|
|
|
extern void grx11CreateBackingStore();
|
|
|
|
|
extern bool grx11GetBackingStore();
|
|
|
|
|
extern bool grx11ScrollBackingStore();
|
|
|
|
|
extern void grx11PutBackingStore();
|
|
|
|
|
|
|
|
|
|
extern void grx11DrawLines();
|
|
|
|
|
extern XSegment grx11Lines[];
|
|
|
|
|
extern int grx11NbLines;
|
|
|
|
|
extern void grx11FillRects();
|
|
|
|
|
extern XRectangle grx11Rects[];
|
|
|
|
|
extern int grx11NbRects;
|
|
|
|
|
|
|
|
|
|
#define GR_X_FLUSH_LINES() {if (grx11NbLines>0) {grx11DrawLines(grx11Lines, grx11NbLines); grx11NbLines=0;}}
|
|
|
|
|
#define GR_X_FLUSH_RECTS() {if (grx11NbRects>0) {grx11FillRects(grx11Rects, grx11NbRects); grx11NbRects=0;}}
|
|
|
|
|
#define GR_X_FLUSH_BATCH() {GR_X_FLUSH_LINES(); GR_X_FLUSH_RECTS();}
|
2024-10-16 08:26:44 +02:00
|
|
|
|
|
|
|
|
#endif /* _MAGIC__GRAPHICS__GRX11INT_H */
|