opengl 0.7.0.pre1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemtest +0 -0
- data/.gitignore +8 -0
- data/History.txt +36 -0
- data/MIT-LICENSE +18 -0
- data/Manifest.txt +140 -0
- data/README.rdoc +51 -0
- data/Rakefile +129 -0
- data/Rakefile.cross +104 -0
- data/doc/build_install.txt +119 -0
- data/doc/extensions.txt.in +348 -0
- data/doc/history.txt +66 -0
- data/doc/requirements_and_design.txt +117 -0
- data/doc/roadmap.txt +28 -0
- data/doc/scientific_use.txt +35 -0
- data/doc/supplies/page_template.html +71 -0
- data/doc/thanks.txt +29 -0
- data/doc/tutorial.txt +469 -0
- data/examples/NeHe/nehe_lesson02.rb +117 -0
- data/examples/NeHe/nehe_lesson03.rb +122 -0
- data/examples/NeHe/nehe_lesson04.rb +133 -0
- data/examples/NeHe/nehe_lesson05.rb +186 -0
- data/examples/NeHe/nehe_lesson36.rb +303 -0
- data/examples/OrangeBook/3Dlabs-License.txt +33 -0
- data/examples/OrangeBook/brick.frag +36 -0
- data/examples/OrangeBook/brick.rb +376 -0
- data/examples/OrangeBook/brick.vert +41 -0
- data/examples/OrangeBook/particle.frag +17 -0
- data/examples/OrangeBook/particle.rb +406 -0
- data/examples/OrangeBook/particle.vert +38 -0
- data/examples/README +16 -0
- data/examples/RedBook/aapoly.rb +142 -0
- data/examples/RedBook/aargb.rb +119 -0
- data/examples/RedBook/accanti.rb +162 -0
- data/examples/RedBook/accpersp.rb +215 -0
- data/examples/RedBook/alpha.rb +123 -0
- data/examples/RedBook/alpha3D.rb +158 -0
- data/examples/RedBook/bezcurve.rb +105 -0
- data/examples/RedBook/bezmesh.rb +137 -0
- data/examples/RedBook/checker.rb +124 -0
- data/examples/RedBook/clip.rb +95 -0
- data/examples/RedBook/colormat.rb +135 -0
- data/examples/RedBook/cube.rb +69 -0
- data/examples/RedBook/depthcue.rb +99 -0
- data/examples/RedBook/dof.rb +205 -0
- data/examples/RedBook/double.rb +105 -0
- data/examples/RedBook/drawf.rb +91 -0
- data/examples/RedBook/feedback.rb +145 -0
- data/examples/RedBook/fog.rb +167 -0
- data/examples/RedBook/font.rb +151 -0
- data/examples/RedBook/hello.rb +79 -0
- data/examples/RedBook/image.rb +137 -0
- data/examples/RedBook/jitter.rb +207 -0
- data/examples/RedBook/lines.rb +128 -0
- data/examples/RedBook/list.rb +111 -0
- data/examples/RedBook/material.rb +275 -0
- data/examples/RedBook/mipmap.rb +156 -0
- data/examples/RedBook/model.rb +113 -0
- data/examples/RedBook/movelight.rb +132 -0
- data/examples/RedBook/pickdepth.rb +179 -0
- data/examples/RedBook/planet.rb +108 -0
- data/examples/RedBook/quadric.rb +158 -0
- data/examples/RedBook/robot.rb +115 -0
- data/examples/RedBook/select.rb +196 -0
- data/examples/RedBook/smooth.rb +95 -0
- data/examples/RedBook/stencil.rb +163 -0
- data/examples/RedBook/stroke.rb +167 -0
- data/examples/RedBook/surface.rb +166 -0
- data/examples/RedBook/teaambient.rb +132 -0
- data/examples/RedBook/teapots.rb +182 -0
- data/examples/RedBook/tess.rb +183 -0
- data/examples/RedBook/texbind.rb +147 -0
- data/examples/RedBook/texgen.rb +169 -0
- data/examples/RedBook/texturesurf.rb +128 -0
- data/examples/RedBook/varray.rb +159 -0
- data/examples/RedBook/wrap.rb +148 -0
- data/examples/misc/OGLBench.rb +337 -0
- data/examples/misc/anisotropic.rb +194 -0
- data/examples/misc/fbo_test.rb +356 -0
- data/examples/misc/font-glut.rb +46 -0
- data/examples/misc/glfwtest.rb +30 -0
- data/examples/misc/plane.rb +161 -0
- data/examples/misc/readpixel.rb +65 -0
- data/examples/misc/sdltest.rb +34 -0
- data/examples/misc/trislam.rb +828 -0
- data/ext/common/common.h +448 -0
- data/ext/common/conv.h +234 -0
- data/ext/common/funcdef.h +280 -0
- data/ext/common/gl-enums.h +10031 -0
- data/ext/common/gl-error.h +23 -0
- data/ext/common/gl-types.h +67 -0
- data/ext/common/glu-enums.h +463 -0
- data/ext/gl/extconf.rb +43 -0
- data/ext/gl/gl-1.0-1.1.c +2811 -0
- data/ext/gl/gl-1.2.c +814 -0
- data/ext/gl/gl-1.3.c +443 -0
- data/ext/gl/gl-1.4.c +348 -0
- data/ext/gl/gl-1.5.c +225 -0
- data/ext/gl/gl-2.0.c +657 -0
- data/ext/gl/gl-2.1.c +57 -0
- data/ext/gl/gl-enums.c +3354 -0
- data/ext/gl/gl-error.c +104 -0
- data/ext/gl/gl-ext-3dfx.c +27 -0
- data/ext/gl/gl-ext-arb.c +866 -0
- data/ext/gl/gl-ext-ati.c +41 -0
- data/ext/gl/gl-ext-ext.c +889 -0
- data/ext/gl/gl-ext-gremedy.c +41 -0
- data/ext/gl/gl-ext-nv.c +679 -0
- data/ext/gl/gl.c +216 -0
- data/ext/glu/extconf.rb +51 -0
- data/ext/glu/glu-enums.c +164 -0
- data/ext/glu/glu.c +1530 -0
- data/ext/glut/extconf.rb +67 -0
- data/ext/glut/glut.c +1624 -0
- data/lib/opengl.rb +89 -0
- data/test/README +10 -0
- data/test/tc_common.rb +98 -0
- data/test/tc_ext_arb.rb +467 -0
- data/test/tc_ext_ati.rb +33 -0
- data/test/tc_ext_ext.rb +551 -0
- data/test/tc_ext_gremedy.rb +36 -0
- data/test/tc_ext_nv.rb +357 -0
- data/test/tc_func_10_11.rb +1281 -0
- data/test/tc_func_12.rb +186 -0
- data/test/tc_func_13.rb +229 -0
- data/test/tc_func_14.rb +197 -0
- data/test/tc_func_15.rb +270 -0
- data/test/tc_func_20.rb +346 -0
- data/test/tc_func_21.rb +541 -0
- data/test/tc_glu.rb +310 -0
- data/test/tc_include_gl.rb +35 -0
- data/test/tc_misc.rb +54 -0
- data/test/tc_require_gl.rb +34 -0
- data/utils/README +11 -0
- data/utils/enumgen.rb +112 -0
- data/utils/extlistgen.rb +90 -0
- data/utils/mkdn2html.rb +59 -0
- data/utils/post-mkdn2html.rb +91 -0
- data/website/images/ogl.jpg +0 -0
- data/website/images/tab_bottom.gif +0 -0
- data/website/style.css +198 -0
- metadata +274 -0
data/utils/enumgen.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
#
|
2
|
+
# Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
|
3
|
+
#
|
4
|
+
# This program is distributed under the terms of the MIT license.
|
5
|
+
# See the included MIT-LICENSE file for the terms of this license.
|
6
|
+
#
|
7
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
8
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
9
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
10
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
11
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
12
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
13
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
+
#
|
15
|
+
# enumgen.rb - generates GL/GLU enumerators code based on enum/enumext/gluenum .spec files
|
16
|
+
|
17
|
+
require 'open-uri'
|
18
|
+
|
19
|
+
def parse_enum_spec(infilename)
|
20
|
+
puts "Reading #{infilename} ..."
|
21
|
+
enum_list = {}
|
22
|
+
f = open(infilename,"r")
|
23
|
+
f.each do |line|
|
24
|
+
case line
|
25
|
+
when /^#|:|^$/ # skip comment, directive or empty line
|
26
|
+
next
|
27
|
+
when /^\tuse/ # enum alias for organization purpose, we don't need that
|
28
|
+
next
|
29
|
+
when /^\t|^ / # enum
|
30
|
+
# remove trailing comment (if any) and split
|
31
|
+
name,equals,value,*rest = line.split("#")[0].split(" ")
|
32
|
+
# true/false are special constants
|
33
|
+
unless (name=="TRUE" or name=="FALSE")
|
34
|
+
enum_list[name] = value
|
35
|
+
end
|
36
|
+
else
|
37
|
+
puts "Unexpected line: #{line}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
f.close
|
41
|
+
enum_list
|
42
|
+
end
|
43
|
+
|
44
|
+
def write_enums(enum_list, task)
|
45
|
+
# .h
|
46
|
+
puts "Writing #{task[:h]}"
|
47
|
+
File.open(task[:h], "w") do |f|
|
48
|
+
f << "/* This file was genereated on #{Time.now}" << "\n"
|
49
|
+
task[:sources].each do |source| f << " source: #{source}" << "\n" end
|
50
|
+
f << "*/" << "\n\n"
|
51
|
+
enum_list.each do |name,value|
|
52
|
+
gl_name = task[:prefix] + name
|
53
|
+
f << "#ifndef #{gl_name}" << "\n"
|
54
|
+
f << "#define #{gl_name} #{value}" << "\n"
|
55
|
+
f << "#endif" << "\n"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# .c
|
60
|
+
puts "Writing #{task[:c]}"
|
61
|
+
File.open(task[:c], "w") do |f|
|
62
|
+
f << "/* This file was genereated on #{Time.now}" << "\n"
|
63
|
+
task[:sources].each do |source| f << " source: #{source}" << "\n" end
|
64
|
+
f << "*/" << "\n\n"
|
65
|
+
f << '#include "../common/common.h"' << "\n"
|
66
|
+
f << "void #{task[:prefix].downcase}init_enums(VALUE module)" << "\n"
|
67
|
+
f << "{" << "\n"
|
68
|
+
|
69
|
+
# true/false are special constants
|
70
|
+
f << "\trb_define_const(module, \"#{task[:prefix]}TRUE\", Qtrue);" << "\n"
|
71
|
+
f << "\trb_define_const(module, \"#{task[:prefix]}FALSE\", Qfalse);" << "\n"
|
72
|
+
f << "\n"
|
73
|
+
|
74
|
+
enum_list.each do |name,value|
|
75
|
+
gl_name = task[:prefix] + name
|
76
|
+
f << "\trb_define_const(module, \"#{gl_name}\", INT2NUM(#{gl_name}));" << "\n"
|
77
|
+
end
|
78
|
+
|
79
|
+
f << "}" << "\n"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
# main
|
85
|
+
begin
|
86
|
+
gl_enums = {:c => "../ext/gl/gl-enums.c",:h => "../ext/common/gl-enums.h",
|
87
|
+
:sources => ["http://www.opengl.org/registry/api/enum.spec",
|
88
|
+
"http://www.opengl.org/registry/api/enumext.spec"],
|
89
|
+
:prefix => "GL_"
|
90
|
+
}
|
91
|
+
|
92
|
+
glu_enums = {:c => "../ext/glu/glu-enums.c",:h => "../ext/common/glu-enums.h",
|
93
|
+
:sources => "http://oss.sgi.com/cgi-bin/cvsweb.cgi/~checkout~/projects/ogl-sample/main/doc/registry/specs/enumglu.spec",
|
94
|
+
:prefix => "GLU_"
|
95
|
+
}
|
96
|
+
|
97
|
+
task_list = [gl_enums, glu_enums]
|
98
|
+
|
99
|
+
# main loop
|
100
|
+
task_list.each do |task|
|
101
|
+
enum_list = {}
|
102
|
+
# gather enums from each source file/url
|
103
|
+
task[:sources].each do |fname|
|
104
|
+
enum_list.update(parse_enum_spec(fname))
|
105
|
+
end
|
106
|
+
# write to files
|
107
|
+
write_enums(enum_list.sort,task)
|
108
|
+
end
|
109
|
+
puts "All OK"
|
110
|
+
rescue
|
111
|
+
puts $!
|
112
|
+
end
|
data/utils/extlistgen.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
|
4
|
+
#
|
5
|
+
# This program is distributed under the terms of the MIT license.
|
6
|
+
# See the included MIT-LICENSE file for the terms of this license.
|
7
|
+
#
|
8
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
+
#
|
16
|
+
# extlistgen.rb - generates HTML table of extension support from .in file
|
17
|
+
|
18
|
+
# main
|
19
|
+
require 'csv'
|
20
|
+
|
21
|
+
opengl_extdoc_url = "http://opengl.org/registry/specs/"
|
22
|
+
|
23
|
+
# the extension / doc url naming is sometimes inconsistent
|
24
|
+
link_exceptions = {
|
25
|
+
"GL_SGIX_texture_add_env" => "SGIX/texture_env_add.txt",
|
26
|
+
"GL_SUN_multi_draw_arrays" => "EXT/multi_draw_arrays.txt",
|
27
|
+
"GL_SGIX_pixel_texture" => "SGIX/sgix_pixel_texture.txt",
|
28
|
+
"GL_SGIS_fog_function" => "SGIS/fog_func.txt",
|
29
|
+
"GL_SGIX_vertex_preclip_hint" => "SGIX/vertex_preclip.txt"
|
30
|
+
}
|
31
|
+
|
32
|
+
begin
|
33
|
+
if ARGV.size < 3
|
34
|
+
puts "Parameters: infile outfile version [version ...]"
|
35
|
+
raise
|
36
|
+
end
|
37
|
+
|
38
|
+
infile,outfile,*versions = ARGV
|
39
|
+
|
40
|
+
# read the list
|
41
|
+
extensions = []
|
42
|
+
CSV.open(infile, 'r') do |row|
|
43
|
+
next if row[0][0] == ?# # discard comment line
|
44
|
+
extensions << row
|
45
|
+
end
|
46
|
+
extensions.sort!
|
47
|
+
|
48
|
+
# create output
|
49
|
+
File.open(outfile, 'w') do |f|
|
50
|
+
f << "<table class='extlist'>\n"
|
51
|
+
f << "<tr>\n"
|
52
|
+
|
53
|
+
# header
|
54
|
+
f << "<th>Extension</th>\n"
|
55
|
+
versions.each do |ver|
|
56
|
+
f << "<th>#{ver}</th>\n"
|
57
|
+
end
|
58
|
+
f << "</tr>\n"
|
59
|
+
|
60
|
+
# content
|
61
|
+
extensions.each do |ext|
|
62
|
+
next if ext[1]=="NonGL" # skip non-GL (WGL,GLX) extensions
|
63
|
+
|
64
|
+
if (link_exceptions[ext[0]])
|
65
|
+
link = opengl_extdoc_url + link_exceptions[ext[0]]
|
66
|
+
else
|
67
|
+
tmp, subdir, *fname = ext[0].split("_")
|
68
|
+
link = opengl_extdoc_url + subdir + "/" + fname.join("_") + ".txt"
|
69
|
+
end
|
70
|
+
|
71
|
+
f << "<tr>\n"
|
72
|
+
f << "<td><a href='#{link}'>#{ext[0]}</a></td>"
|
73
|
+
|
74
|
+
versions.each do |ver|
|
75
|
+
if (ext[1]=="Supported" && (ver>=ext[2]))
|
76
|
+
f << "<td class='supported'>YES</td>"
|
77
|
+
elsif (ext[1]=="Other")
|
78
|
+
f << "<td class='other'>NO</td>"
|
79
|
+
else # unsupported
|
80
|
+
f << "<td class='unsupported'>NO</td>"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
f << "</tr>\n"
|
84
|
+
end
|
85
|
+
|
86
|
+
f << "</table>"
|
87
|
+
end
|
88
|
+
rescue
|
89
|
+
puts $!
|
90
|
+
end
|
data/utils/mkdn2html.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
+
#
|
5
|
+
# This program is distributed under the terms of the MIT license.
|
6
|
+
# See the included MIT-LICENSE file for the terms of this license.
|
7
|
+
#
|
8
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
+
|
16
|
+
# Don't use -w for now -- too many warning re. the BlueCloth module.
|
17
|
+
|
18
|
+
# Converts the named text file (containing plain text marked up with Markdown
|
19
|
+
# markup) into a corresponding html file. The user must specify both filenames.
|
20
|
+
# If the outfile already exists, it will be written over.
|
21
|
+
|
22
|
+
require 'rubygems'
|
23
|
+
require 'bluecloth'
|
24
|
+
|
25
|
+
if ARGV.size != 2
|
26
|
+
puts "Error: please pass exactly two args: the name of the file"
|
27
|
+
puts "you want converted to html, and the name of the file:"
|
28
|
+
puts "mkdn2html.rb infile.txt outfile.html"
|
29
|
+
exit 1
|
30
|
+
end
|
31
|
+
|
32
|
+
infile_name = ARGV[0]
|
33
|
+
outfile_name = ARGV[1]
|
34
|
+
|
35
|
+
# Strip the last filename extension so we can use the basename in the
|
36
|
+
# title of the page.
|
37
|
+
base_filename = File.basename( infile_name, ".*" )
|
38
|
+
puts "base_filename = #{base_filename}"
|
39
|
+
if base_filename == 'README'
|
40
|
+
base_filename = 'Home'
|
41
|
+
end
|
42
|
+
puts "base_filename = #{base_filename}"
|
43
|
+
|
44
|
+
raw_markdown_text = IO.read( infile_name )
|
45
|
+
bc = BlueCloth.new( raw_markdown_text )
|
46
|
+
html_content = bc.to_html
|
47
|
+
|
48
|
+
puts "outfile is #{File.expand_path( outfile_name )}"
|
49
|
+
|
50
|
+
template_content = IO.read( './doc/supplies/page_template.html' )
|
51
|
+
template_content.sub!( /\{\{content\}\}/, html_content )
|
52
|
+
template_content.sub!( /\{\{title\}\}/, base_filename )
|
53
|
+
|
54
|
+
|
55
|
+
File.open( outfile_name, 'w' ) do |file|
|
56
|
+
file.write template_content
|
57
|
+
end
|
58
|
+
|
59
|
+
puts "Done creating plain #{base_filename} html file."
|
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
+
#
|
5
|
+
# This program is distributed under the terms of the MIT license.
|
6
|
+
# See the included MIT-LICENSE file for the terms of this license.
|
7
|
+
#
|
8
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
+
|
16
|
+
|
17
|
+
# This script will modify the contents of the first html file you
|
18
|
+
# pass it, and save the modifications in the 2nd file.
|
19
|
+
#
|
20
|
+
# What it does:
|
21
|
+
#
|
22
|
+
# It looks in the first file for patterns like this:
|
23
|
+
#
|
24
|
+
# <pre><code>{{name}}\nstuff</code></pre>
|
25
|
+
#
|
26
|
+
# and replaces "stuff" with "stuff" processed to include color syntax
|
27
|
+
# highlighting, assuming it is code written in language "name".
|
28
|
+
#
|
29
|
+
# Prerequisites:
|
30
|
+
# * This script expects that you have GNU source-highlight installed.
|
31
|
+
|
32
|
+
require 'cgi'
|
33
|
+
|
34
|
+
if ARGV.size != 2
|
35
|
+
puts "Please don't trifle with me."
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
|
39
|
+
infile_name = ARGV[0]
|
40
|
+
outfile_name = ARGV[1]
|
41
|
+
|
42
|
+
# Open the file, slurp the whole thing into one long string.
|
43
|
+
infile_content = IO.read( infile_name )
|
44
|
+
outfile_content = infile_content.clone
|
45
|
+
temp_content = infile_content.clone
|
46
|
+
|
47
|
+
# Make sure we find all of them -- there could be more than 1 in
|
48
|
+
# the given file. XXX (Just finding the first one here.)
|
49
|
+
|
50
|
+
snippet_num = 0
|
51
|
+
|
52
|
+
while true
|
53
|
+
# If we get a match, process that snippet.
|
54
|
+
if outfile_content =~ %r{<pre><code>\{\{(\w+)\}\}\n(.+?)</code></pre>}m
|
55
|
+
pre_stuff = $`
|
56
|
+
language = $1
|
57
|
+
code_to_convert = $2
|
58
|
+
post_stuff = $'
|
59
|
+
|
60
|
+
# BlueCloth already escapes html tags, so this is to avoid
|
61
|
+
# double escaping by source-highlight
|
62
|
+
# - Jan
|
63
|
+
code_to_convert = CGI::unescapeHTML(code_to_convert)
|
64
|
+
|
65
|
+
# Quick usage note on source-highlight:
|
66
|
+
#
|
67
|
+
# source-highlight -s ruby -i $filename -o $filename
|
68
|
+
#
|
69
|
+
# where, if you omit -o filename, output goes to stdout.
|
70
|
+
|
71
|
+
base_name = File.basename( outfile_name, '.*' )
|
72
|
+
File.open( "doc/#{base_name}_#{snippet_num}.snip", 'w' ) do |file|
|
73
|
+
file.write code_to_convert
|
74
|
+
end
|
75
|
+
|
76
|
+
highlighted_code =
|
77
|
+
`source-highlight -s #{language} -i doc/#{base_name}_#{snippet_num}.snip -f html`
|
78
|
+
|
79
|
+
temp_content = pre_stuff + highlighted_code + post_stuff
|
80
|
+
snippet_num += 1
|
81
|
+
outfile_content = temp_content.clone
|
82
|
+
else
|
83
|
+
break
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
File.open( outfile_name, 'w' ) do |file|
|
88
|
+
file.write outfile_content
|
89
|
+
end
|
90
|
+
|
91
|
+
puts "Done syntax highlighting #{snippet_num} snippets for #{infile_name}. Wrote #{outfile_name}."
|
Binary file
|
Binary file
|
data/website/style.css
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
/* CSS Document
|
2
|
+
Template Title: Uncomplicated
|
3
|
+
Author: J David Macor
|
4
|
+
URL: http://www.jdavidmacor.com
|
5
|
+
|
6
|
+
Note, John M. Gabriele darkened it a bit.
|
7
|
+
*/
|
8
|
+
|
9
|
+
/* Main Body */
|
10
|
+
body {
|
11
|
+
font-family: verdana, sans-serif;
|
12
|
+
font-size: 11px;
|
13
|
+
background: #d3e3d3;
|
14
|
+
}
|
15
|
+
|
16
|
+
#container {
|
17
|
+
width: 760px;
|
18
|
+
padding: 30px;
|
19
|
+
padding-bottom: 5px;
|
20
|
+
border: 1px solid #ccc;
|
21
|
+
background: #e8e8e8;
|
22
|
+
margin: 0 auto;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* Header */
|
26
|
+
#header {
|
27
|
+
width: 500px;
|
28
|
+
border-left: 4px solid #ccc;
|
29
|
+
border-right: 4px solid #ccc;
|
30
|
+
margin: 0 auto;
|
31
|
+
margin-bottom: 20px;
|
32
|
+
font-family: Geneva, Arial, Helvetica, sans-serif;
|
33
|
+
font-size: 36px;
|
34
|
+
letter-spacing: 0.4em;
|
35
|
+
text-align: center;
|
36
|
+
}
|
37
|
+
|
38
|
+
/* Navigation */
|
39
|
+
#tabnav {
|
40
|
+
height: 20px;
|
41
|
+
margin: 0;
|
42
|
+
padding-left: 10px;
|
43
|
+
background: url(images/tab_bottom.gif) repeat-x bottom;
|
44
|
+
}
|
45
|
+
|
46
|
+
#tabnav li {
|
47
|
+
margin: 0;
|
48
|
+
padding: 0;
|
49
|
+
display: inline;
|
50
|
+
list-style-type: none;
|
51
|
+
}
|
52
|
+
|
53
|
+
#tabnav a:link, #tabnav a:visited {
|
54
|
+
float: left;
|
55
|
+
background: #f3f3f3;
|
56
|
+
font-size: 10px;
|
57
|
+
line-height: 14px;
|
58
|
+
font-weight: bold;
|
59
|
+
padding: 2px 10px 2px 10px;
|
60
|
+
margin-right: 4px;
|
61
|
+
border: 1px solid #ccc;
|
62
|
+
text-decoration: none;
|
63
|
+
color: #666;
|
64
|
+
}
|
65
|
+
|
66
|
+
#tabnav a:link.active, #tabnav a:visited.active {
|
67
|
+
border-bottom: 1px solid #fff;
|
68
|
+
background: #fff;
|
69
|
+
color: #000;
|
70
|
+
}
|
71
|
+
|
72
|
+
#tabnav a:hover {
|
73
|
+
background: #fff;
|
74
|
+
}
|
75
|
+
|
76
|
+
/* Main Content */
|
77
|
+
#content {
|
78
|
+
width: 550px;
|
79
|
+
margin-top: 15px;
|
80
|
+
}
|
81
|
+
|
82
|
+
#content h2 {
|
83
|
+
font-size: 20px;
|
84
|
+
}
|
85
|
+
|
86
|
+
#content p {
|
87
|
+
font-size: 12px;
|
88
|
+
}
|
89
|
+
|
90
|
+
#content a, a:visited {
|
91
|
+
color: #666666;
|
92
|
+
text-decoration: underline;
|
93
|
+
}
|
94
|
+
|
95
|
+
#content a:hover {
|
96
|
+
color: #000000;
|
97
|
+
}
|
98
|
+
|
99
|
+
/* Sidebar */
|
100
|
+
#sidebar {
|
101
|
+
width: 190px;
|
102
|
+
float: right;
|
103
|
+
clear: none;
|
104
|
+
margin-top: 15px;
|
105
|
+
}
|
106
|
+
|
107
|
+
#sidebar h3 {
|
108
|
+
border-bottom: 1px solid #ccc;
|
109
|
+
font-size: 14px;
|
110
|
+
}
|
111
|
+
|
112
|
+
#sidebar ul {
|
113
|
+
font-size: 12px;
|
114
|
+
}
|
115
|
+
|
116
|
+
#sidebar a, a:visited {
|
117
|
+
color: #666666;
|
118
|
+
text-decoration: underline;
|
119
|
+
}
|
120
|
+
|
121
|
+
#sidebar a:hover {
|
122
|
+
color: #000000;
|
123
|
+
}
|
124
|
+
|
125
|
+
/* footer */
|
126
|
+
#footer {
|
127
|
+
color: #666;
|
128
|
+
text-align: center;
|
129
|
+
border-top: 1px solid #ccc;
|
130
|
+
size: 11px;
|
131
|
+
margin-top: 30px;
|
132
|
+
margin-bottom: 0;
|
133
|
+
}
|
134
|
+
|
135
|
+
#footer a, a:visited {
|
136
|
+
color: #666666;
|
137
|
+
text-decoration: underline;
|
138
|
+
}
|
139
|
+
|
140
|
+
#footer a:hover {
|
141
|
+
color: #000000;
|
142
|
+
}
|
143
|
+
|
144
|
+
pre{
|
145
|
+
width: 100%;
|
146
|
+
overflow: auto;
|
147
|
+
border: 1px solid #CCC;
|
148
|
+
background: #EEE;
|
149
|
+
}
|
150
|
+
|
151
|
+
.extlist{
|
152
|
+
text-align: left;
|
153
|
+
font-weight: normal;
|
154
|
+
color: #404040;
|
155
|
+
background-color: #fafafa;
|
156
|
+
border: 1px #666666 solid;
|
157
|
+
border-collapse: collapse;
|
158
|
+
border-spacing: 1px;
|
159
|
+
}
|
160
|
+
|
161
|
+
.extlist th{
|
162
|
+
text-align: center;
|
163
|
+
border-bottom: 1px solid #666666;
|
164
|
+
border-left: 1px solid #666666;
|
165
|
+
background-color: #dddddd;
|
166
|
+
font-weight: bold;
|
167
|
+
color: #404040;
|
168
|
+
}
|
169
|
+
|
170
|
+
.extlist td,.extlist td.supported,.extlist td.unsupported,.extlist td.other{
|
171
|
+
border: 1px solid #666666;
|
172
|
+
text-align: center;
|
173
|
+
text-indent: 1px;
|
174
|
+
color: #404040;
|
175
|
+
}
|
176
|
+
|
177
|
+
.extlist td {
|
178
|
+
text-align: left;
|
179
|
+
}
|
180
|
+
|
181
|
+
.extlist td.supported {
|
182
|
+
background-color: #33ff33;
|
183
|
+
}
|
184
|
+
|
185
|
+
.extlist td.unsupported {
|
186
|
+
/* background-color: #ff3333; */
|
187
|
+
background-color: #cccccc;
|
188
|
+
}
|
189
|
+
|
190
|
+
.extlist td.other {
|
191
|
+
background-color: #cccccc;
|
192
|
+
}
|
193
|
+
|
194
|
+
/* f << "<td class='supported'>YES</td>"
|
195
|
+
elsif (ext[1]=="Other")
|
196
|
+
f << "<td class='other'>NO</td>"
|
197
|
+
else # unsupported
|
198
|
+
f << "<td class='unsupported'>NO</td>" */
|