pcbjam/wasm/stubs/GL/glu.h
Viktor Vaczi 582b282a6c Add missing GLU_TESS_BOUNDARY_ONLY constant for idftools
The idftools/vrml_layer.cpp uses this GLU tessellation constant
which was missing from our WASM GLU stub header.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 11:24:24 +01:00

89 lines
3 KiB
C

/**
* GLU header for WebAssembly builds
*
* Provides GLU function declarations. Implementation is in glu_wasm_impl.cpp
* which uses KiCad's earcut-based polygon triangulation.
*/
#ifndef __GLU_H__
#define __GLU_H__
#include <GLES2/gl2.h>
#ifdef __cplusplus
extern "C" {
#endif
// GLU types
typedef double GLdouble;
typedef void (*_GLUfuncptr)(void);
typedef struct GLUtesselator GLUtesselator;
typedef struct GLUquadric GLUquadric;
// GLU constants
#define GLU_TESS_BEGIN 100100
#define GLU_TESS_VERTEX 100101
#define GLU_TESS_END 100102
#define GLU_TESS_ERROR 100103
#define GLU_TESS_EDGE_FLAG 100104
#define GLU_TESS_COMBINE 100105
#define GLU_TESS_BEGIN_DATA 100106
#define GLU_TESS_VERTEX_DATA 100107
#define GLU_TESS_END_DATA 100108
#define GLU_TESS_ERROR_DATA 100109
#define GLU_TESS_EDGE_FLAG_DATA 100110
#define GLU_TESS_COMBINE_DATA 100111
#define GLU_TESS_WINDING_RULE 100140
#define GLU_TESS_WINDING_ODD 100130
#define GLU_TESS_WINDING_NONZERO 100131
#define GLU_TESS_WINDING_POSITIVE 100132
#define GLU_TESS_WINDING_NEGATIVE 100133
#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
#define GLU_TESS_BOUNDARY_ONLY 100141
// Tesselator functions
GLUtesselator* gluNewTess(void);
void gluDeleteTess(GLUtesselator* tess);
void gluTessCallback(GLUtesselator* tess, GLenum which, _GLUfuncptr fn);
void gluTessProperty(GLUtesselator* tess, GLenum which, GLdouble value);
void gluGetTessProperty(GLUtesselator* tess, GLenum which, GLdouble* value);
void gluTessNormal(GLUtesselator* tess, GLdouble x, GLdouble y, GLdouble z);
void gluTessBeginPolygon(GLUtesselator* tess, void* userData);
void gluTessBeginContour(GLUtesselator* tess);
void gluTessVertex(GLUtesselator* tess, GLdouble coords[3], void* data);
void gluTessEndContour(GLUtesselator* tess);
void gluTessEndPolygon(GLUtesselator* tess);
const unsigned char* gluErrorString(GLenum error);
// Quadric constants
#define GLU_OUTSIDE 100020
#define GLU_INSIDE 100021
#define GLU_POINT 100010
#define GLU_LINE 100011
#define GLU_FILL 100012
#define GLU_SILHOUETTE 100013
#define GLU_SMOOTH 100000
#define GLU_FLAT 100001
#define GLU_NONE 100002
// Quadric type aliases
typedef GLUquadric GLUquadricObj;
// Quadric functions (stubs - not implemented for WASM)
GLUquadric* gluNewQuadric(void);
void gluDeleteQuadric(GLUquadric* q);
void gluQuadricDrawStyle(GLUquadric* q, GLenum style);
void gluQuadricNormals(GLUquadric* q, GLenum normals);
void gluCylinder(GLUquadric* q, double base, double top, double height, int slices, int stacks);
void gluDisk(GLUquadric* q, double inner, double outer, int slices, int loops);
void gluSphere(GLUquadric* q, double radius, int slices, int stacks);
// Matrix functions (stub)
void gluPerspective(double fovy, double aspect, double zNear, double zFar);
#ifdef __cplusplus
}
#endif
#endif /* __GLU_H__ */