[Xquartz-changes] [250] AppleSGLX/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Mon Feb 23 20:33:11 PST 2009
Revision: 250
http://trac.macosforge.org/projects/xquartz/changeset/250
Author: gstaplin at apple.com
Date: 2009-02-23 20:33:09 -0800 (Mon, 23 Feb 2009)
Log Message:
-----------
Add support for detecting the OpenGL framework support for features with nm -j -g.
gen_funcs.tcl now lists the missing functions on both sides. There is one
non-extension function (glSamplePass) that seems to have been removed from the
OpenGL 3.0 spec (in PDF form). The gl.spec also doesn't list it.
Modified Paths:
--------------
AppleSGLX/trunk/GL_aliases
AppleSGLX/trunk/GL_extensions
AppleSGLX/trunk/gen_funcs.tcl
Modified: AppleSGLX/trunk/GL_aliases
===================================================================
--- AppleSGLX/trunk/GL_aliases 2009-02-24 02:07:37 UTC (rev 249)
+++ AppleSGLX/trunk/GL_aliases 2009-02-24 04:33:09 UTC (rev 250)
@@ -5,4 +5,3 @@
alias PrioritizeTexturesEXT PrioritizeTextures
alias AreTexturesResidentEXT AreTexturesResident
alias IsTextureEXT IsTexture
-
Modified: AppleSGLX/trunk/GL_extensions
===================================================================
--- AppleSGLX/trunk/GL_extensions 2009-02-24 02:07:37 UTC (rev 249)
+++ AppleSGLX/trunk/GL_extensions 2009-02-24 04:33:09 UTC (rev 250)
@@ -92,3 +92,15 @@
#The OpenGL framework has moved this to the core OpenGL, and eliminated EXT_convolution listing.
#extension EXT_convolution
+
+#Leopard supports these according to nm.
+#Applications should use the GL_EXTENSIONS list to determine capabilities.
+extension EXT_paletted_texture
+extension APPLE_fence
+extension NV_vertex_program4
+extension EXT_draw_buffers2
+extension EXT_gpu_shader4
+extension ATI_pn_triangles
+extension NV_register_combiners
+extension EXT_depth_bounds_test
+
Modified: AppleSGLX/trunk/gen_funcs.tcl
===================================================================
--- AppleSGLX/trunk/gen_funcs.tcl 2009-02-24 02:07:37 UTC (rev 249)
+++ AppleSGLX/trunk/gen_funcs.tcl 2009-02-24 04:33:09 UTC (rev 250)
@@ -71,6 +71,7 @@
return [info exists extensions($name)]
}
+#This is going to need to be updated for OpenGL >= 2.1 in SnowLeopard.
array set typemap {
void void
List GLuint
@@ -224,7 +225,7 @@
VertexAttribPointerTypeARB GLenum
ClampColorTargetARB unknown3.0
ClampColorModeARB unknown3.0
- VertexAttribEnum unknown3.0
+ VertexAttribEnum GLenum
DrawBufferName unknown3.0
WeightPointerTypeARB GLenum
ProgramTargetARB GLenum
@@ -520,7 +521,60 @@
set newapi($from) $d
}
+ #Iterate the nm output and set each symbol in an associative array.
+ array set validapi {}
+ foreach line [split [exec nm -j -g /System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib] \n] {
+ set fn [string trim $line]
+
+ #Only match the _gl functions.
+ if {[string match _gl* $fn]} {
+ set finalfn [string range $fn 3 end]
+ puts FINALFN:$finalfn
+ set validapi($finalfn) $finalfn
+ }
+ }
+
+ puts "Correcting the API functions to match the OpenGL framework."
+ #parray validapi
+
+ #Iterate the newapi and unset any members that the
+ #libGL.dylib doesn't support, assuming they aren't no-ops.
+ foreach fn [array names newapi] {
+ if {![info exists validapi($fn)]} {
+ puts "WARNING: libGL.dylib lacks support for: $fn"
+
+ if {[dict exists $newapi($fn) noop]
+ && [dict get $newapi($fn) noop]} {
+ #This is no-op, so we should skip it.
+ continue
+ }
+
+ #Is the function an alias for another in libGL?
+ if {[dict exists $newapi($fn) alias_for]} {
+ set alias [dict get $newapi($fn) alias_for]
+
+ if {![info exists validapi($alias)]} {
+ puts "WARNING: alias function doesn't exist for $fn."
+ puts "The alias is $alias."
+ puts "unsetting $fn"
+ unset newapi($fn)
+ }
+ } else {
+ puts "unsetting $fn"
+ unset newapi($fn)
+ }
+ }
+ }
+
+
+ #Now print a warning about any symbols that libGL supports that we don't.
+ foreach fn [array names validapi] {
+ if {![info exists newapi($fn)]} {
+ puts "AppleSGLX is missing $fn"
+ }
+ }
+
puts "NOW GENERATING:[lindex $::argv 1]"
set fd [open [lindex $::argv 1] w]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/xquartz-changes/attachments/20090223/f74272ad/attachment-0001.html>
More information about the Xquartz-changes
mailing list