1
/* -*- c -*- *******************************************************/
3
* Copyright (C) 2003 Sandia Corporation
4
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
5
* license for use of this work by or on behalf of the U.S. Government.
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that this Notice and any statement
8
* of authorship are reproduced on all copies.
11
/* $Id: ice-t.h,v 1.10 2006/07/05 14:14:35 kmorel Exp $ */
16
#include <GL/ice-t_config.h>
21
# include <OpenGL/gl.h>
33
typedef int IceTContext;
35
struct IceTCommunicatorStruct;
37
typedef int IceTCommRequest;
38
#define ICET_COMM_REQUEST_NULL ((IceTCommRequest)-1)
40
struct IceTCommunicatorStruct {
41
struct IceTCommunicatorStruct *
42
(*Duplicate)(struct IceTCommunicatorStruct *self);
43
void (*Destroy)(struct IceTCommunicatorStruct *self);
44
void (*Send)(struct IceTCommunicatorStruct *self,
45
const void *buf, int count, GLenum datatype, int dest,
47
void (*Recv)(struct IceTCommunicatorStruct *self,
48
void *buf, int count, GLenum datatype, int src, int tag);
50
void (*Sendrecv)(struct IceTCommunicatorStruct *self,
51
const void *sendbuf, int sendcount, GLenum sendtype,
52
int dest, int sendtag,
53
void *recvbuf, int recvcount, GLenum recvtype,
54
int src, int recvtag);
55
void (*Allgather)(struct IceTCommunicatorStruct *self,
56
const void *sendbuf, int sendcount, int type,
59
IceTCommRequest (*Isend)(struct IceTCommunicatorStruct *self,
60
const void *buf, int count, GLenum datatype,
62
IceTCommRequest (*Irecv)(struct IceTCommunicatorStruct *self,
63
void *buf, int count, GLenum datatype,
66
void (*Wait)(struct IceTCommunicatorStruct *self, IceTCommRequest *request);
67
int (*Waitany)(struct IceTCommunicatorStruct *self,
68
int count, IceTCommRequest *array_of_requests);
70
int (*Comm_size)(struct IceTCommunicatorStruct *self);
71
int (*Comm_rank)(struct IceTCommunicatorStruct *self);
75
typedef struct IceTCommunicatorStruct *IceTCommunicator;
77
ICET_EXPORT double icetWallTime(void);
79
ICET_EXPORT IceTContext icetCreateContext(IceTCommunicator comm);
80
ICET_EXPORT void icetDestroyContext(IceTContext context);
81
ICET_EXPORT IceTContext icetGetContext(void);
82
ICET_EXPORT void icetSetContext(IceTContext context);
83
ICET_EXPORT void icetCopyState(IceTContext dest, const IceTContext src);
85
typedef void (*IceTCallback)(void);
87
ICET_EXPORT void icetDrawFunc(IceTCallback func);
89
#define ICET_BOOLEAN (GLenum)0x8000
90
#define ICET_BYTE (GLenum)0x8001
91
#define ICET_SHORT (GLenum)0x8002
92
#define ICET_INT (GLenum)0x8003
93
#define ICET_FLOAT (GLenum)0x8004
94
#define ICET_DOUBLE (GLenum)0x8005
95
#define ICET_POINTER (GLenum)0x8008
96
#define ICET_NULL (GLenum)0x0000
101
ICET_EXPORT void icetBoundingVertices(GLint size, GLenum type, GLsizei stride,
102
GLsizei count, const GLvoid *pointer);
103
ICET_EXPORT void icetBoundingBoxd(GLdouble x_min, GLdouble x_max,
104
GLdouble y_min, GLdouble y_max,
105
GLdouble z_min, GLdouble z_max);
106
ICET_EXPORT void icetBoundingBoxf(GLfloat x_min, GLfloat x_max,
107
GLfloat y_min, GLfloat y_max,
108
GLfloat z_min, GLfloat z_max);
110
ICET_EXPORT void icetResetTiles(void);
111
ICET_EXPORT int icetAddTile(GLint x, GLint y, GLsizei width, GLsizei height,
114
ICET_EXPORT void icetDrawFrame(void);
116
ICET_EXPORT GLubyte *icetGetColorBuffer(void);
117
ICET_EXPORT GLuint *icetGetDepthBuffer(void);
119
typedef GLuint *IceTImage;
120
typedef struct _IceTStrategy {
122
GLboolean supports_ordering;
123
IceTImage (*compose)(void);
126
ICET_STRATEGY_EXPORT extern IceTStrategy ICET_STRATEGY_DIRECT;
127
ICET_STRATEGY_EXPORT extern IceTStrategy ICET_STRATEGY_SERIAL;
128
ICET_STRATEGY_EXPORT extern IceTStrategy ICET_STRATEGY_SPLIT;
129
ICET_STRATEGY_EXPORT extern IceTStrategy ICET_STRATEGY_REDUCE;
130
ICET_STRATEGY_EXPORT extern IceTStrategy ICET_STRATEGY_VTREE;
132
ICET_EXPORT void icetStrategy(IceTStrategy strategy);
134
ICET_EXPORT const GLubyte *icetGetStrategyName(void);
136
#define ICET_COLOR_BUFFER_BIT (GLenum)0x0100
137
#define ICET_DEPTH_BUFFER_BIT (GLenum)0x0200
138
ICET_EXPORT void icetInputOutputBuffers(GLenum inputs, GLenum outputs);
140
ICET_EXPORT void icetCompositeOrder(const GLint *process_ranks);
142
ICET_EXPORT void icetDataReplicationGroup(GLint size, const GLint *processes);
143
ICET_EXPORT void icetDataReplicationGroupColor(GLint color);
145
#define ICET_DIAG_OFF (GLenum)0x0000
146
#define ICET_DIAG_ERRORS (GLenum)0x0001
147
#define ICET_DIAG_WARNINGS (GLenum)0x0003
148
#define ICET_DIAG_DEBUG (GLenum)0x0007
149
#define ICET_DIAG_ROOT_NODE (GLenum)0x0000
150
#define ICET_DIAG_ALL_NODES (GLenum)0x0100
151
#define ICET_DIAG_FULL (GLenum)0xFFFF
153
ICET_EXPORT void icetDiagnostics(GLbitfield mask);
156
#define ICET_STATE_ENGINE_START (GLenum)0x00000000
158
#define ICET_DIAGNOSTIC_LEVEL (ICET_STATE_ENGINE_START | (GLenum)0x0001)
159
#define ICET_RANK (ICET_STATE_ENGINE_START | (GLenum)0x0002)
160
#define ICET_NUM_PROCESSES (ICET_STATE_ENGINE_START | (GLenum)0x0003)
161
#define ICET_ABSOLUTE_FAR_DEPTH (ICET_STATE_ENGINE_START | (GLenum)0x0004)
162
#define ICET_BACKGROUND_COLOR (ICET_STATE_ENGINE_START | (GLenum)0x0005)
163
#define ICET_BACKGROUND_COLOR_WORD (ICET_STATE_ENGINE_START | (GLenum)0x0006)
165
#define ICET_NUM_TILES (ICET_STATE_ENGINE_START | (GLenum)0x0010)
166
#define ICET_TILE_VIEWPORTS (ICET_STATE_ENGINE_START | (GLenum)0x0011)
167
#define ICET_GLOBAL_VIEWPORT (ICET_STATE_ENGINE_START | (GLenum)0x0012)
168
#define ICET_TILE_MAX_WIDTH (ICET_STATE_ENGINE_START | (GLenum)0x0013)
169
#define ICET_TILE_MAX_HEIGHT (ICET_STATE_ENGINE_START | (GLenum)0x0014)
170
#define ICET_TILE_MAX_PIXELS (ICET_STATE_ENGINE_START | (GLenum)0x0015)
171
#define ICET_DISPLAY_NODES (ICET_STATE_ENGINE_START | (GLenum)0x001A)
172
#define ICET_TILE_DISPLAYED (ICET_STATE_ENGINE_START | (GLenum)0x001B)
174
#define ICET_GEOMETRY_BOUNDS (ICET_STATE_ENGINE_START | (GLenum)0x0022)
175
#define ICET_NUM_BOUNDING_VERTS (ICET_STATE_ENGINE_START | (GLenum)0x0023)
176
#define ICET_STRATEGY_NAME (ICET_STATE_ENGINE_START | (GLenum)0x0024)
177
#define ICET_STRATEGY_COMPOSE (ICET_STATE_ENGINE_START | (GLenum)0x0025)
178
#define ICET_INPUT_BUFFERS (ICET_STATE_ENGINE_START | (GLenum)0x0026)
179
#define ICET_OUTPUT_BUFFERS (ICET_STATE_ENGINE_START | (GLenum)0x0027)
180
#define ICET_COMPOSITE_ORDER (ICET_STATE_ENGINE_START | (GLenum)0x0028)
181
#define ICET_PROCESS_ORDERS (ICET_STATE_ENGINE_START | (GLenum)0x0029)
182
#define ICET_STRATEGY_SUPPORTS_ORDERING (ICET_STATE_ENGINE_START | (GLenum)0x002A)
183
#define ICET_DATA_REPLICATION_GROUP (ICET_STATE_ENGINE_START | (GLenum)0x002B)
184
#define ICET_DATA_REPLICATION_GROUP_SIZE (ICET_STATE_ENGINE_START | (GLenum)0x002C)
186
#define ICET_DRAW_FUNCTION (ICET_STATE_ENGINE_START | (GLenum)0x0060)
187
#define ICET_READ_BUFFER (ICET_STATE_ENGINE_START | (GLenum)0x0061)
188
#define ICET_COLOR_FORMAT (ICET_STATE_ENGINE_START | (GLenum)0x0062)
189
#define ICET_FRAME_COUNT (ICET_STATE_ENGINE_START | (GLenum)0x0063)
191
#define ICET_STATE_FRAME_START (GLenum)0x00000080
193
#define ICET_IS_DRAWING_FRAME (ICET_STATE_FRAME_START | (GLenum)0x0000)
194
#define ICET_PROJECTION_MATRIX (ICET_STATE_FRAME_START | (GLenum)0x0001)
195
#define ICET_CONTAINED_VIEWPORT (ICET_STATE_FRAME_START | (GLenum)0x0002)
196
#define ICET_NEAR_DEPTH (ICET_STATE_FRAME_START | (GLenum)0x0003)
197
#define ICET_FAR_DEPTH (ICET_STATE_FRAME_START | (GLenum)0x0004)
198
#define ICET_NUM_CONTAINED_TILES (ICET_STATE_FRAME_START| (GLenum)0x0005)
199
#define ICET_CONTAINED_TILES_LIST (ICET_STATE_FRAME_START|(GLenum)0x0006)
200
#define ICET_CONTAINED_TILES_MASK (ICET_STATE_FRAME_START|(GLenum)0x0007)
201
#define ICET_ALL_CONTAINED_TILES_MASKS (ICET_STATE_FRAME_START|(GLenum)0x0008)
202
#define ICET_TILE_CONTRIB_COUNTS (ICET_STATE_FRAME_START| (GLenum)0x0009)
203
#define ICET_TOTAL_IMAGE_COUNT (ICET_STATE_FRAME_START | (GLenum)0x000A)
205
#define ICET_RENDERED_VIEWPORT (ICET_STATE_FRAME_START | (GLenum)0x0010)
207
#define ICET_COLOR_BUFFER (ICET_STATE_FRAME_START | (GLenum)0x0018)
208
#define ICET_DEPTH_BUFFER (ICET_STATE_FRAME_START | (GLenum)0x0019)
209
#define ICET_COLOR_BUFFER_VALID (ICET_STATE_FRAME_START | (GLenum)0x001A)
210
#define ICET_DEPTH_BUFFER_VALID (ICET_STATE_FRAME_START | (GLenum)0x001B)
212
#define ICET_STATE_TIMING_START (GLenum)0x000000C0
214
#define ICET_RENDER_TIME (ICET_STATE_TIMING_START | (GLenum)0x0001)
215
#define ICET_BUFFER_READ_TIME (ICET_STATE_TIMING_START | (GLenum)0x0002)
216
#define ICET_BUFFER_WRITE_TIME (ICET_STATE_TIMING_START | (GLenum)0x0003)
217
#define ICET_COMPRESS_TIME (ICET_STATE_TIMING_START | (GLenum)0x0004)
218
#define ICET_COMPARE_TIME (ICET_STATE_TIMING_START | (GLenum)0x0005)
219
#define ICET_BLEND_TIME ICET_COMPARE_TIME
220
#define ICET_COMPOSITE_TIME (ICET_STATE_TIMING_START | (GLenum)0x0006)
221
#define ICET_TOTAL_DRAW_TIME (ICET_STATE_TIMING_START | (GLenum)0x0007)
222
#define ICET_BYTES_SENT (ICET_STATE_TIMING_START | (GLenum)0x0010)
224
#define ICET_STATE_ENABLE_START (GLenum)0x00000100
225
#define ICET_STATE_ENABLE_END (GLenum)0x00000120
227
#define ICET_FLOATING_VIEWPORT (ICET_STATE_ENABLE_START | (GLenum)0x0001)
228
#define ICET_ORDERED_COMPOSITE (ICET_STATE_ENABLE_START | (GLenum)0x0002)
229
#define ICET_CORRECT_COLORED_BACKGROUND (ICET_STATE_ENABLE_START | (GLenum)0x0003)
231
#define ICET_DISPLAY (ICET_STATE_ENABLE_START | (GLenum)0x0010)
232
#define ICET_DISPLAY_COLORED_BACKGROUND (ICET_STATE_ENABLE_START | (GLenum)0x0011)
233
#define ICET_DISPLAY_INFLATE (ICET_STATE_ENABLE_START | (GLenum)0x0012)
234
#define ICET_DISPLAY_INFLATE_WITH_HARDWARE (ICET_STATE_ENABLE_START | (GLenum)0x0013)
236
#define ICET_STATE_SIZE (GLenum)0x00000200
238
ICET_EXPORT void icetGetDoublev(GLenum pname, GLdouble *params);
239
ICET_EXPORT void icetGetFloatv(GLenum pname, GLfloat *params);
240
ICET_EXPORT void icetGetIntegerv(GLenum pname, GLint *params);
241
ICET_EXPORT void icetGetBooleanv(GLenum pname, GLboolean *params);
242
ICET_EXPORT void icetGetPointerv(GLenum pname, GLvoid **params);
244
ICET_EXPORT void icetEnable(GLenum pname);
245
ICET_EXPORT void icetDisable(GLenum pname);
246
ICET_EXPORT GLboolean icetIsEnabled(GLenum pname);
248
#define ICET_NO_ERROR (GLenum)0x00000000
249
#define ICET_SANITY_CHECK_FAIL (GLenum)0xFFFFFFFF
250
#define ICET_INVALID_ENUM (GLenum)0xFFFFFFFE
251
#define ICET_BAD_CAST (GLenum)0xFFFFFFFD
252
#define ICET_OUT_OF_MEMORY (GLenum)0xFFFFFFFC
253
#define ICET_INVALID_OPERATION (GLenum)0xFFFFFFFB
254
#define ICET_INVALID_VALUE (GLenum)0xFFFFFFFA
256
ICET_EXPORT GLenum icetGetError(void);
262
#endif /* _ICET_H_ */