213 lines
7.4 KiB
C
213 lines
7.4 KiB
C
/* Copyright (C) 2010, Guy Barrand. All rights reserved. */
|
|
/* See the file tools.license for terms. */
|
|
|
|
#ifndef tools_gl2ps_def_h
|
|
#define tools_gl2ps_def_h
|
|
|
|
typedef int tools_GLint;
|
|
typedef unsigned int tools_GLuint;
|
|
typedef float tools_GLfloat;
|
|
typedef unsigned int tools_GLenum;
|
|
typedef short tools_GLshort;
|
|
typedef unsigned short tools_GLushort;
|
|
typedef int tools_GLsizei;
|
|
typedef unsigned char tools_GLboolean;
|
|
|
|
/*----------------------------------------------------------*/
|
|
/*--- from gl2ps.h : --------------------------------------*/
|
|
/*----------------------------------------------------------*/
|
|
#define TOOLS_GL2PSDLL_API inline
|
|
|
|
#define TOOLS_GL2PS_MAJOR_VERSION 1
|
|
#define TOOLS_GL2PS_MINOR_VERSION 4
|
|
#define TOOLS_GL2PS_PATCH_VERSION 2
|
|
#define TOOLS_GL2PS_EXTRA_VERSION ""
|
|
|
|
#define TOOLS_GL2PS_VERSION (TOOLS_GL2PS_MAJOR_VERSION + \
|
|
0.01 * TOOLS_GL2PS_MINOR_VERSION + \
|
|
0.0001 * TOOLS_GL2PS_PATCH_VERSION)
|
|
|
|
#define TOOLS_GL2PS_COPYRIGHT "(C) 1999-2020 C. Geuzaine"
|
|
|
|
/* Output file formats (the values and the ordering are important!) */
|
|
|
|
#define TOOLS_GL2PS_PS 0
|
|
#define TOOLS_GL2PS_EPS 1
|
|
#define TOOLS_GL2PS_TEX 2
|
|
#define TOOLS_GL2PS_PDF 3
|
|
#define TOOLS_GL2PS_SVG 4
|
|
#define TOOLS_GL2PS_PGF 5
|
|
|
|
/* Sorting algorithms */
|
|
|
|
#define TOOLS_GL2PS_NO_SORT 1
|
|
#define TOOLS_GL2PS_SIMPLE_SORT 2
|
|
#define TOOLS_GL2PS_BSP_SORT 3
|
|
|
|
/* Message levels and error codes */
|
|
|
|
#define TOOLS_GL2PS_SUCCESS 0
|
|
#define TOOLS_GL2PS_INFO 1
|
|
#define TOOLS_GL2PS_WARNING 2
|
|
#define TOOLS_GL2PS_ERROR 3
|
|
#define TOOLS_GL2PS_NO_FEEDBACK 4
|
|
#define TOOLS_GL2PS_OVERFLOW 5
|
|
#define TOOLS_GL2PS_UNINITIALIZED 6
|
|
|
|
/* Options for tools_gl2psBeginPage */
|
|
|
|
#define TOOLS_GL2PS_NONE 0
|
|
#define TOOLS_GL2PS_DRAW_BACKGROUND (1<<0)
|
|
#define TOOLS_GL2PS_SIMPLE_LINE_OFFSET (1<<1)
|
|
#define TOOLS_GL2PS_SILENT (1<<2)
|
|
#define TOOLS_GL2PS_BEST_ROOT (1<<3)
|
|
#define TOOLS_GL2PS_OCCLUSION_CULL (1<<4)
|
|
#define TOOLS_GL2PS_NO_TEXT (1<<5)
|
|
#define TOOLS_GL2PS_LANDSCAPE (1<<6)
|
|
#define TOOLS_GL2PS_NO_PS3_SHADING (1<<7)
|
|
#define TOOLS_GL2PS_NO_PIXMAP (1<<8)
|
|
#define TOOLS_GL2PS_USE_CURRENT_VIEWPORT (1<<9)
|
|
#define TOOLS_GL2PS_COMPRESS (1<<10)
|
|
#define TOOLS_GL2PS_NO_BLENDING (1<<11)
|
|
#define TOOLS_GL2PS_TIGHT_BOUNDING_BOX (1<<12)
|
|
#define TOOLS_GL2PS_NO_OPENGL_CONTEXT (1<<13)
|
|
#define TOOLS_GL2PS_NO_TEX_FONTSIZE (1<<14)
|
|
#define TOOLS_GL2PS_PORTABLE_SORT (1<<15)
|
|
|
|
/* Arguments for tools_gl2psEnable/tools_gl2psDisable */
|
|
|
|
#define TOOLS_GL2PS_POLYGON_OFFSET_FILL 1
|
|
#define TOOLS_GL2PS_POLYGON_BOUNDARY 2
|
|
#define TOOLS_GL2PS_LINE_STIPPLE 3
|
|
#define TOOLS_GL2PS_BLEND 4
|
|
|
|
|
|
/* Arguments for tools_gl2psLineCap/Join */
|
|
|
|
#define TOOLS_GL2PS_LINE_CAP_BUTT 0
|
|
#define TOOLS_GL2PS_LINE_CAP_ROUND 1
|
|
#define TOOLS_GL2PS_LINE_CAP_SQUARE 2
|
|
|
|
#define TOOLS_GL2PS_LINE_JOIN_MITER 0
|
|
#define TOOLS_GL2PS_LINE_JOIN_ROUND 1
|
|
#define TOOLS_GL2PS_LINE_JOIN_BEVEL 2
|
|
|
|
/* Text alignment (o=raster position; default mode is BL):
|
|
+---+ +---+ +---+ +---+ +---+ +---+ +-o-+ o---+ +---o
|
|
| o | o | | o | | | | | | | | | | | |
|
|
+---+ +---+ +---+ +-o-+ o---+ +---o +---+ +---+ +---+
|
|
C CL CR B BL BR T TL TR */
|
|
|
|
#define TOOLS_GL2PS_TEXT_C 1
|
|
#define TOOLS_GL2PS_TEXT_CL 2
|
|
#define TOOLS_GL2PS_TEXT_CR 3
|
|
#define TOOLS_GL2PS_TEXT_B 4
|
|
#define TOOLS_GL2PS_TEXT_BL 5
|
|
#define TOOLS_GL2PS_TEXT_BR 6
|
|
#define TOOLS_GL2PS_TEXT_T 7
|
|
#define TOOLS_GL2PS_TEXT_TL 8
|
|
#define TOOLS_GL2PS_TEXT_TR 9
|
|
|
|
typedef tools_GLfloat tools_GL2PSrgba[4];
|
|
typedef tools_GLfloat tools_GL2PSxyz[3];
|
|
|
|
typedef struct {
|
|
tools_GL2PSxyz xyz;
|
|
tools_GL2PSrgba rgba;
|
|
} tools_GL2PSvertex;
|
|
|
|
/* Primitive types */
|
|
#define TOOLS_GL2PS_NO_TYPE -1
|
|
#define TOOLS_GL2PS_TEXT 1
|
|
#define TOOLS_GL2PS_POINT 2
|
|
#define TOOLS_GL2PS_LINE 3
|
|
#define TOOLS_GL2PS_QUADRANGLE 4
|
|
#define TOOLS_GL2PS_TRIANGLE 5
|
|
#define TOOLS_GL2PS_PIXMAP 6
|
|
#define TOOLS_GL2PS_IMAGEMAP 7
|
|
#define TOOLS_GL2PS_IMAGEMAP_WRITTEN 8
|
|
#define TOOLS_GL2PS_IMAGEMAP_VISIBLE 9
|
|
#define TOOLS_GL2PS_SPECIAL 10
|
|
|
|
/*----------------------------------------------------------*/
|
|
/*--- from OpenGL : ----------------------------------------*/
|
|
/*----------------------------------------------------------*/
|
|
#define TOOLS_GL_TRUE 1
|
|
#define TOOLS_GL_FALSE 0
|
|
|
|
#define TOOLS_GL_FLOAT 0x1406
|
|
#define TOOLS_GL_BLEND 0x0BE2
|
|
|
|
#define TOOLS_GL_SRC_ALPHA 0x0302
|
|
#define TOOLS_GL_ONE_MINUS_SRC_ALPHA 0x0303
|
|
|
|
#define TOOLS_GL_RGB 0x1907
|
|
#define TOOLS_GL_RGBA 0x1908
|
|
|
|
#define TOOLS_GL_POINTS 0x0000
|
|
|
|
#define TOOLS_GL_CURRENT_RASTER_POSITION_VALID 0x0B08
|
|
#define TOOLS_GL_CURRENT_RASTER_POSITION 0x0B07
|
|
#define TOOLS_GL_CURRENT_RASTER_COLOR 0x0B04
|
|
#define TOOLS_GL_ZERO 0
|
|
#define TOOLS_GL_ONE 1
|
|
#define TOOLS_GL_COLOR_INDEX 0x1900
|
|
|
|
#define TOOLS_GL_POINT_TOKEN 0x0701
|
|
#define TOOLS_GL_LINE_TOKEN 0x0702
|
|
#define TOOLS_GL_LINE_RESET_TOKEN 0x0707
|
|
#define TOOLS_GL_POLYGON_TOKEN 0x0703
|
|
#define TOOLS_GL_BITMAP_TOKEN 0x0704
|
|
#define TOOLS_GL_DRAW_PIXEL_TOKEN 0x0705
|
|
|
|
#define TOOLS_GL_COPY_PIXEL_TOKEN 0x0706
|
|
#define TOOLS_GL_PASS_THROUGH_TOKEN 0x0700
|
|
|
|
#define TOOLS_GL_FEEDBACK 0x1C01
|
|
#define TOOLS_GL_COLOR_CLEAR_VALUE 0x0C22
|
|
#define TOOLS_GL_INDEX_CLEAR_VALUE 0x0C20
|
|
#define TOOLS_GL_RENDER 0x1C00
|
|
#define TOOLS_GL_VIEWPORT 0x0BA2
|
|
#define TOOLS_GL_BLEND_SRC 0x0BE1
|
|
#define TOOLS_GL_BLEND_DST 0x0BE0
|
|
#define TOOLS_GL_3D_COLOR 0x0602
|
|
|
|
#define TOOLS_GL_POLYGON_OFFSET_FACTOR 0x8038
|
|
#define TOOLS_GL_POLYGON_OFFSET_UNITS 0x2A00
|
|
#define TOOLS_GL_LINE_STIPPLE_PATTERN 0x0B25
|
|
#define TOOLS_GL_LINE_STIPPLE_REPEAT 0x0B26
|
|
|
|
#define TOOLS_GL_ZOOM_X 0x0D16
|
|
#define TOOLS_GL_ZOOM_Y 0x0D17
|
|
|
|
/*----------------------------------------------------------*/
|
|
/*----------------------------------------------------------*/
|
|
/*----------------------------------------------------------*/
|
|
typedef struct tools_GL2PScontextRec* tools_GL2PScontextPointer;
|
|
|
|
typedef tools_GLboolean (*tools_glIsEnabled_func) (tools_GLenum);
|
|
typedef void (*tools_glBegin_func) (tools_GLenum);
|
|
typedef void (*tools_glEnd_func) ();
|
|
typedef void (*tools_glGetFloatv_func) (tools_GLenum,tools_GLfloat*);
|
|
typedef void (*tools_glVertex3f_func) (tools_GLfloat,tools_GLfloat,tools_GLfloat);
|
|
typedef void (*tools_glGetBooleanv_func) (tools_GLenum,tools_GLboolean*);
|
|
typedef void (*tools_glGetIntegerv_func) (tools_GLenum,tools_GLint*);
|
|
typedef tools_GLint (*tools_glRenderMode_func) (tools_GLenum);
|
|
typedef void (*tools_glFeedbackBuffer_func) (tools_GLsizei,tools_GLenum,tools_GLfloat*);
|
|
typedef void (*tools_glPassThrough_func) (tools_GLfloat);
|
|
|
|
typedef struct {
|
|
tools_glIsEnabled_func m_glIsEnabled;
|
|
tools_glBegin_func m_glBegin;
|
|
tools_glEnd_func m_glEnd;
|
|
tools_glGetFloatv_func m_glGetFloatv;
|
|
tools_glVertex3f_func m_glVertex3f;
|
|
tools_glGetBooleanv_func m_glGetBooleanv;
|
|
tools_glGetIntegerv_func m_glGetIntegerv;
|
|
tools_glRenderMode_func m_glRenderMode;
|
|
tools_glFeedbackBuffer_func m_glFeedbackBuffer;
|
|
tools_glPassThrough_func m_glPassThrough;
|
|
} tools_gl2ps_gl_funcs_t;
|
|
|
|
#endif
|