Module: GLU
- Extended by:
- Fiddle::Importer
- Defined in:
- lib/glu.rb
Constant Summary collapse
- GLU_EXT_object_space_tess =
Extensions
1
- GLU_EXT_nurbs_tessellator =
1
- GLU_FALSE =
Boolean
0
- GLU_TRUE =
1
- GLU_VERSION_1_1 =
Version
1
- GLU_VERSION_1_2 =
1
- GLU_VERSION_1_3 =
1
- GLU_VERSION =
StringName
100800
- GLU_EXTENSIONS =
100801
- GLU_INVALID_ENUM =
ErrorCode
100900
- GLU_INVALID_VALUE =
100901
- GLU_OUT_OF_MEMORY =
100902
- GLU_INCOMPATIBLE_GL_VERSION =
100903
- GLU_INVALID_OPERATION =
100904
- GLU_OUTLINE_POLYGON =
NurbsDisplay GLU_FILL
100240
- GLU_OUTLINE_PATCH =
100241
- GLU_NURBS_ERROR =
NurbsCallback
100103
- GLU_ERROR =
100103
- GLU_NURBS_BEGIN =
100164
- GLU_NURBS_BEGIN_EXT =
100164
- GLU_NURBS_VERTEX =
100165
- GLU_NURBS_VERTEX_EXT =
100165
- GLU_NURBS_NORMAL =
100166
- GLU_NURBS_NORMAL_EXT =
100166
- GLU_NURBS_COLOR =
100167
- GLU_NURBS_COLOR_EXT =
100167
- GLU_NURBS_TEXTURE_COORD =
100168
- GLU_NURBS_TEX_COORD_EXT =
100168
- GLU_NURBS_END =
100169
- GLU_NURBS_END_EXT =
100169
- GLU_NURBS_BEGIN_DATA =
100170
- GLU_NURBS_BEGIN_DATA_EXT =
100170
- GLU_NURBS_VERTEX_DATA =
100171
- GLU_NURBS_VERTEX_DATA_EXT =
100171
- GLU_NURBS_NORMAL_DATA =
100172
- GLU_NURBS_NORMAL_DATA_EXT =
100172
- GLU_NURBS_COLOR_DATA =
100173
- GLU_NURBS_COLOR_DATA_EXT =
100173
- GLU_NURBS_TEXTURE_COORD_DATA =
100174
- GLU_NURBS_TEX_COORD_DATA_EXT =
100174
- GLU_NURBS_END_DATA =
100175
- GLU_NURBS_END_DATA_EXT =
100175
- GLU_NURBS_ERROR1 =
NurbsError
100251
- GLU_NURBS_ERROR2 =
spline order un-supported
100252
- GLU_NURBS_ERROR3 =
too few knots
100253
- GLU_NURBS_ERROR4 =
valid knot range is empty
100254
- GLU_NURBS_ERROR5 =
decreasing knot sequence
100255
- GLU_NURBS_ERROR6 =
knot multiplicity > spline order
100256
- GLU_NURBS_ERROR7 =
endcurve() must follow bgncurve()
100257
- GLU_NURBS_ERROR8 =
bgncurve() must precede endcurve()
100258
- GLU_NURBS_ERROR9 =
ctrlarray or knot vector is NULL
100259
- GLU_NURBS_ERROR10 =
can’t draw pwlcurves
100260
- GLU_NURBS_ERROR11 =
missing gluNurbsCurve()
100261
- GLU_NURBS_ERROR12 =
missing gluNurbsSurface()
100262
- GLU_NURBS_ERROR13 =
endtrim() must precede endsurface()
100263
- GLU_NURBS_ERROR14 =
bgnsurface() must precede endsurface()
100264
- GLU_NURBS_ERROR15 =
curve of improper type passed as trim curve
100265
- GLU_NURBS_ERROR16 =
bgnsurface() must precede bgntrim()
100266
- GLU_NURBS_ERROR17 =
endtrim() must follow bgntrim()
100267
- GLU_NURBS_ERROR18 =
bgntrim() must precede endtrim()
100268
- GLU_NURBS_ERROR19 =
invalid or missing trim curve
100269
- GLU_NURBS_ERROR20 =
bgntrim() must precede pwlcurve()
100270
- GLU_NURBS_ERROR21 =
pwlcurve referenced twice
100271
- GLU_NURBS_ERROR22 =
pwlcurve and nurbscurve mixed
100272
- GLU_NURBS_ERROR23 =
improper usage of trim data type
100273
- GLU_NURBS_ERROR24 =
nurbscurve referenced twice
100274
- GLU_NURBS_ERROR25 =
nurbscurve and pwlcurve mixed
100275
- GLU_NURBS_ERROR26 =
nurbssurface referenced twice
100276
- GLU_NURBS_ERROR27 =
invalid property
100277
- GLU_NURBS_ERROR28 =
endsurface() must follow bgnsurface()
100278
- GLU_NURBS_ERROR29 =
intersecting or misoriented trim curves
100279
- GLU_NURBS_ERROR30 =
intersecting trim curves
100280
- GLU_NURBS_ERROR31 =
UNUSED
100281
- GLU_NURBS_ERROR32 =
unconnected trim curves
100282
- GLU_NURBS_ERROR33 =
unknown knot error
100283
- GLU_NURBS_ERROR34 =
negative vertex count encountered
100284
- GLU_NURBS_ERROR35 =
negative byte-stride
100285
- GLU_NURBS_ERROR36 =
unknown type descriptor
100286
- GLU_NURBS_ERROR37 =
null control point reference
100287
- GLU_AUTO_LOAD_MATRIX =
NurbsProperty
100200
- GLU_CULLING =
100201
- GLU_SAMPLING_TOLERANCE =
100203
- GLU_DISPLAY_MODE =
100204
- GLU_PARAMETRIC_TOLERANCE =
100202
- GLU_SAMPLING_METHOD =
100205
- GLU_U_STEP =
100206
- GLU_V_STEP =
100207
- GLU_NURBS_MODE =
100160
- GLU_NURBS_MODE_EXT =
100160
- GLU_NURBS_TESSELLATOR =
100161
- GLU_NURBS_TESSELLATOR_EXT =
100161
- GLU_NURBS_RENDERER =
100162
- GLU_NURBS_RENDERER_EXT =
100162
- GLU_OBJECT_PARAMETRIC_ERROR =
NurbsSampling
100208
- GLU_OBJECT_PARAMETRIC_ERROR_EXT =
100208
- GLU_OBJECT_PATH_LENGTH =
100209
- GLU_OBJECT_PATH_LENGTH_EXT =
100209
- GLU_PATH_LENGTH =
100215
- GLU_PARAMETRIC_ERROR =
100216
- GLU_DOMAIN_DISTANCE =
100217
- GLU_MAP1_TRIM_2 =
NurbsTrim
100210
- GLU_MAP1_TRIM_3 =
100211
- GLU_POINT =
QuadricDrawStyle
100010
- GLU_LINE =
100011
- GLU_FILL =
100012
- GLU_SILHOUETTE =
100013
- GLU_SMOOTH =
QuadricNormal
100000
- GLU_FLAT =
100001
- GLU_NONE =
100002
- GLU_OUTSIDE =
QuadricOrientation
100020
- GLU_INSIDE =
100021
- GLU_TESS_BEGIN =
TessCallback
100100
- GLU_BEGIN =
100100
- GLU_TESS_VERTEX =
100101
- GLU_VERTEX =
100101
- GLU_TESS_END =
100102
- GLU_END =
100102
- GLU_TESS_ERROR =
100103
- GLU_TESS_EDGE_FLAG =
100104
- GLU_EDGE_FLAG =
100104
- GLU_TESS_COMBINE =
100105
- GLU_TESS_BEGIN_DATA =
100106
- GLU_TESS_VERTEX_DATA =
100107
- GLU_TESS_END_DATA =
100108
- GLU_TESS_ERROR_DATA =
100109
- GLU_TESS_EDGE_FLAG_DATA =
100110
- GLU_TESS_COMBINE_DATA =
100111
- GLU_CW =
TessContour
100120
- GLU_CCW =
100121
- GLU_INTERIOR =
100122
- GLU_EXTERIOR =
100123
- GLU_UNKNOWN =
100124
- GLU_TESS_WINDING_RULE =
TessProperty
100140
- GLU_TESS_BOUNDARY_ONLY =
100141
- GLU_TESS_TOLERANCE =
100142
- GLU_TESS_ERROR1 =
TessError
100151
- GLU_TESS_ERROR2 =
100152
- GLU_TESS_ERROR3 =
100153
- GLU_TESS_ERROR4 =
100154
- GLU_TESS_ERROR5 =
100155
- GLU_TESS_ERROR6 =
100156
- GLU_TESS_ERROR7 =
100157
- GLU_TESS_ERROR8 =
100158
- GLU_TESS_MISSING_BEGIN_POLYGON =
100151
- GLU_TESS_MISSING_BEGIN_CONTOUR =
100152
- GLU_TESS_MISSING_END_POLYGON =
100153
- GLU_TESS_MISSING_END_CONTOUR =
100154
- GLU_TESS_COORD_TOO_LARGE =
100155
- GLU_TESS_NEED_COMBINE_CALLBACK =
100156
- GLU_TESS_WINDING_ODD =
TessWinding
100130
- GLU_TESS_WINDING_NONZERO =
100131
- GLU_TESS_WINDING_POSITIVE =
100132
- GLU_TESS_WINDING_NEGATIVE =
100133
- GLU_TESS_WINDING_ABS_GEQ_TWO =
100134
- GLU_TESS_MAX_COORD =
1.0e150
- @@glu_cb_signature =
typedefs
{ :NurbsCallback => "void CallBackFunc()", :QuadricCallback => "void CallBackFunc()", :TessCallback => "void CallBackFunc()", }
- @@glu_import_done =
struct
false
- @@lib_signature =
[ 'void gluBeginCurve (void*)', 'void gluBeginPolygon (void*)', 'void gluBeginSurface (void*)', 'void gluBeginTrim (void*)', 'int32_t gluBuild1DMipmapLevels (uint32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*)', # Unavailable on Windows 'int32_t gluBuild1DMipmaps (uint32_t, int32_t, int32_t, uint32_t, uint32_t, void*)', 'int32_t gluBuild2DMipmapLevels (uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*)', # Unavailable on Windows 'int32_t gluBuild2DMipmaps (uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*)', 'int32_t gluBuild3DMipmapLevels (uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*)', # Unavailable on Windows 'int32_t gluBuild3DMipmaps (uint32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, void*)', # Unavailable on Windows 'uint8_t gluCheckExtension (uint8_t*, uint8_t*)', # Unavailable on Windows 'void gluCylinder (void*, double, double, double, int32_t, int32_t)', 'void gluDeleteNurbsRenderer (void*)', 'void gluDeleteQuadric (void*)', 'void gluDeleteTess (void*)', 'void gluDisk (void*, double, double, int32_t, int32_t)', 'void gluEndCurve (void*)', 'void gluEndPolygon (void*)', 'void gluEndSurface (void*)', 'void gluEndTrim (void*)', 'uint8_t* gluErrorString (uint32_t)', 'void gluGetNurbsProperty (void*, uint32_t, float*)', 'uint8_t* gluGetString (uint32_t)', 'void gluGetTessProperty (void*, uint32_t, double*)', 'void gluLoadSamplingMatrices (void*, float*, float*, int32_t*)', 'void gluLookAt (double, double, double, double, double, double, double, double, double)', 'void* gluNewNurbsRenderer ()', 'void* gluNewQuadric ()', 'void* gluNewTess ()', 'void gluNextContour (void*, uint32_t)', 'void gluNurbsCallback (void*, uint32_t, void*)', 'void gluNurbsCallbackData (void*, void*)', # Unavailable on Windows 'void gluNurbsCallbackDataEXT (void*, void*)', # Unavailable on Windows 'void gluNurbsCurve (void*, int32_t, float*, int32_t, float*, int32_t, uint32_t)', 'void gluNurbsProperty (void*, uint32_t, float)', 'void gluNurbsSurface (void*, int32_t, float*, int32_t, float*, int32_t, int32_t, float*, int32_t, int32_t, uint32_t)', 'void gluOrtho2D (double, double, double, double)', 'void gluPartialDisk (void*, double, double, int32_t, int32_t, double, double)', 'void gluPerspective (double, double, double, double)', 'void gluPickMatrix (double, double, double, double, int32_t*)', 'int32_t gluProject (double, double, double, double*, double*, int32_t*, double*, double*, double*)', 'void gluPwlCurve (void*, int32_t, float*, int32_t, uint32_t)', 'void gluQuadricCallback (void*, uint32_t, void*)', 'void gluQuadricDrawStyle (void*, uint32_t)', 'void gluQuadricNormals (void*, uint32_t)', 'void gluQuadricOrientation (void*, uint32_t)', 'void gluQuadricTexture (void*, uint8_t)', 'int32_t gluScaleImage (uint32_t, int32_t, int32_t, uint32_t, void*, int32_t, int32_t, uint32_t, void*)', 'void gluSphere (void*, double, int32_t, int32_t)', 'void gluTessBeginContour (void*)', 'void gluTessBeginPolygon (void*, void*)', 'void gluTessCallback (void*, uint32_t, void*)', 'void gluTessEndContour (void*)', 'void gluTessEndPolygon (void*)', 'void gluTessNormal (void*, double, double, double)', 'void gluTessProperty (void*, uint32_t, double)', 'void gluTessVertex (void*, double*, void*)', 'int32_t gluUnProject (double, double, double, double*, double*, int32_t*, double*, double*, double*)', 'int32_t gluUnProject4 (double, double, double, double, double*, double*, int32_t*, double, double, double*, double*, double*, double*)', # Unavailable on Windows ]
Class Method Summary collapse
- .create_callback(sym, *opts, &blk) ⇒ Object
- .import_symbols(output_error = false) ⇒ Object
-
.load_lib(lib_path = nil, output_error = false) ⇒ Object
Load native library.
Class Method Details
.create_callback(sym, *opts, &blk) ⇒ Object
216 217 218 |
# File 'lib/glu.rb', line 216 def self.create_callback(sym, *opts, &blk) return bind(@@glu_cb_signature[sym], opts, &blk) end |
.import_symbols(output_error = false) ⇒ Object
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 |
# File 'lib/glu.rb', line 304 def self.import_symbols(output_error = false) # function @@lib_signature.each do |sig| begin extern sig rescue $stderr.puts("[Warning] Failed to import #{sig}.") if output_error end end # Convert method names (e.g.: GLU.gluBeginCurve -> GLU.BeginCurve) self.singleton_methods(false).each do |method_name| m = singleton_method(method_name) if m.name.to_s.start_with? 'glu' modified_api = m.name.to_s[3..-1] # omit prefix "glu" define_singleton_method(modified_api, m) # define alias end end # Convert constant names (e.g.: GLU::GLU_TRUE -> GLU::TRUE) self.constants.each do |constant| cs = constant.to_s if cs[0..3] == "GLU_" if cs[4] =~ /\d/ # We have to abandon name conversion like 'GL_2D, GL_3D_COLOR, GL_4_BYTES, etc. # Because constants can't start with a digit or underscore. # [Note] This rule has been inherited from Yoshi's very original ruby-opengl (confirmed with opengl-0.32g, 2004-07-17). else # Convert by omitting the 'GLU_' prefix const_set(cs[4..-1], GLU.const_get(constant)) end end end @@glu_import_done = true end |
.load_lib(lib_path = nil, output_error = false) ⇒ Object
Load native library.
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/glu.rb', line 225 def self.load_lib(lib_path = nil, output_error = false) if lib_path == nil lib_path = case GL.get_platform when :OPENGL_PLATFORM_WINDOWS 'C:/Windows/System32/GLU32.dll' when :OPENGL_PLATFORM_MACOSX '/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib' else 'libGLU.so' # not tested end end dlload(lib_path) import_symbols(output_error) unless @@glu_import_done end |