gosu 0.7.17-x86-mswin32-60 → 0.7.18-x86-mswin32-60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. data/lib/gosu.for_1_8.so +0 -0
  2. data/lib/gosu.for_1_9.so +0 -0
  3. data/lib/gosu.rb +1 -1
  4. metadata +3 -29
  5. data/reference/rdoc/classes/Gosu.html +0 -1554
  6. data/reference/rdoc/classes/Gosu/Color.html +0 -660
  7. data/reference/rdoc/classes/Gosu/Font.html +0 -545
  8. data/reference/rdoc/classes/Gosu/GLTexInfo.html +0 -412
  9. data/reference/rdoc/classes/Gosu/Image.html +0 -706
  10. data/reference/rdoc/classes/Gosu/Sample.html +0 -476
  11. data/reference/rdoc/classes/Gosu/SampleInstance.html +0 -523
  12. data/reference/rdoc/classes/Gosu/Song.html +0 -568
  13. data/reference/rdoc/classes/Gosu/TextInput.html +0 -444
  14. data/reference/rdoc/classes/Gosu/Window.html +0 -911
  15. data/reference/rdoc/classes/Numeric.html +0 -423
  16. data/reference/rdoc/created.rid +0 -1
  17. data/reference/rdoc/files/COPYING_txt.html +0 -391
  18. data/reference/rdoc/files/README_txt.html +0 -387
  19. data/reference/rdoc/files/reference/Deployment on OS X_rdoc.html +0 -381
  20. data/reference/rdoc/files/reference/Deployment on Windows_rdoc.html +0 -385
  21. data/reference/rdoc/files/reference/Drawing with Colors_rdoc.html +0 -363
  22. data/reference/rdoc/files/reference/Order of Corners_rdoc.html +0 -358
  23. data/reference/rdoc/files/reference/Tileability_rdoc.html +0 -374
  24. data/reference/rdoc/files/reference/Z Ordering_rdoc.html +0 -361
  25. data/reference/rdoc/files/reference/gosu_rb.html +0 -348
  26. data/reference/rdoc/fr_class_index.html +0 -12
  27. data/reference/rdoc/fr_file_index.html +0 -10
  28. data/reference/rdoc/fr_method_index.html +0 -64
  29. data/reference/rdoc/index.html +0 -1
  30. data/reference/rdoc/rdoc-style.css +0 -322
@@ -1,358 +0,0 @@
1
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: Order of Corners.rdoc</title><link type="text/css" media="screen" href="../.././rdoc-style.css" rel="stylesheet"/><script type="text/javascript">
2
- // Allison template
3
- // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
-
5
- var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
-
7
- function $(id) {
8
- if (document.getElementById)
9
- elem = document.getElementById(id);
10
- else if ( document.all )
11
- elem = eval("document.all." + id);
12
- else
13
- return false;
14
- return elem;
15
- }
16
-
17
- function toggle(id) {
18
- elem = $(id);
19
- elemStyle = elem.style;
20
- if (elemStyle.display == "block") {
21
- elemStyle.display = "none"
22
- } else {
23
- elemStyle.display = "block"
24
- }
25
- return true;
26
- }
27
-
28
- function toggleText(id) {
29
- elem = $(id)
30
- if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
- elem.innerHTML = "Show" + m[2];
32
- } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
- elem.innerHTML = "Hide" + m[2];
34
- }
35
- return true;
36
- }
37
-
38
- function span(s, klass) {
39
- return '<span class="' + klass + '">' + s + '</span>';
40
- }
41
-
42
- function highlightSymbols() {
43
- pres = document.getElementsByTagName('pre');
44
- for(var i = 0; i < pres.length; i++) {
45
- pre = pres[i];
46
- spans = pre.getElementsByTagName('span');
47
- for(var k = 0; k < spans.length; k++) {
48
- span = spans[k];
49
- if (span.className.match(/ruby-identifier/)) {
50
- if (span.innerHTML.match(/^:/)) {
51
- span.className += " ruby-symbol";
52
- }
53
- }
54
- }
55
- }
56
- }
57
-
58
- function hasClass(obj) {
59
- var result = false;
60
- if (obj.getAttributeNode("class") != null) {
61
- result = obj.getAttributeNode("class").value;
62
- }
63
- return result;
64
- }
65
-
66
- function stripe() {
67
- var even = true;
68
- var color = "#e4ebed";
69
- var tables = document.getElementsByTagName('table');
70
- if (tables.length == 0) { return; }
71
- for (var h = 0; h < tables.length; h++) {
72
- var trs = tables[h].getElementsByTagName("tr");
73
- for (var i = 0; i < trs.length; i++) {
74
- var tds = trs[i].getElementsByTagName("td");
75
- for (var j = 0; j < tds.length; j++) {
76
- if (hasClass(tds[j]) != "first") {
77
- var mytd = tds[j];
78
- if (even) {
79
- mytd.style.backgroundColor = color;
80
- }
81
- }
82
- }
83
- even = ! even;
84
- }
85
- }
86
- }
87
-
88
- function ajaxGet(url) {
89
- url = (href_base + url).replace('/./', '/')
90
- var req = false;
91
-
92
- if (window.ActiveXObject) {
93
- try {
94
- // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
- // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
- req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
- } catch (e) {
98
- try {
99
- /* IE 6 and maybe 5, don't know, don't care */
100
- req = new ActiveXObject("Msxml2.XMLHTTP");
101
- } catch (e) {
102
- try {
103
- req = new ActiveXObject("Microsoft.XMLHTTP");
104
- } catch (e) {
105
- req = false;
106
- }
107
- }
108
- }
109
- }
110
-
111
- /* real browsers */
112
- if (!req && window.XMLHttpRequest) {
113
- try {
114
- req = new XMLHttpRequest();
115
- } catch (e) {
116
- req = false;
117
- }
118
- }
119
-
120
- if (req) {
121
- req.open('GET', url, false);
122
- req.send(null);
123
- return req.responseText;
124
- } else {
125
- return "Ajax error";
126
- }
127
- }
128
-
129
-
130
- function addEvent(elm, evType, fn, useCapture) {
131
- if (elm.addEventListener) {
132
- elm.addEventListener(evType, fn, useCapture);
133
- return true;
134
- } else if (elm.attachEvent) {
135
- var r = elm.attachEvent('on' + evType, fn);
136
- return r;
137
- } else {
138
- elm['on' + evType] = fn;
139
- }
140
- }
141
-
142
- function insertIndices() {
143
- pages = ["class", "file", "method"]
144
- for (x in pages) {
145
- $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
- }
147
- /* mouseoverify method links */
148
- links = $('method').getElementsByTagName('a');
149
- for (var x = 0; x < links.length; x++) {
150
- if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
- links[x].innerHTML = m[1] + '<br>';
152
- links[x].title = m[2];
153
- }
154
- }
155
- /* this is stupid */
156
- $('class').style.display = "block";
157
- $('file').style.display = "block";
158
-
159
- /* has to be here because IE7 does not guarantee the onLoad callback order */
160
- abbreviateIndicesInner(["class", "file"], 25, "a");
161
- /* same, linkTitle() depends on the class link list */
162
- linkTitle();
163
- }
164
-
165
- function abbreviateIndices() {
166
- var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
- abbreviateIndicesInner(ids, 25, 'a');
168
- abbreviateIndicesInner(ids, 25, 'span');
169
- }
170
-
171
- function abbreviateIndicesInner(indices, amount, tag) {
172
- for (var x = 0; x < indices.length; x++) {
173
- var the_index = $(indices[x]);
174
- if (the_index) {
175
- links = the_index.getElementsByTagName(tag);
176
- for (var y = 0; y < links.length; y++) {
177
- var link = links[y];
178
- if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
- // avoid nesting
180
- link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
- link.title = link.innerHTML;
182
- link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
- }
184
- }
185
- }
186
- }
187
- }
188
-
189
- function linkTitle() {
190
-
191
- /* grab the correct title element from the index */
192
- var index_page = ajaxGet('index.html');
193
- title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
- document.title = title_text + " - " + document.title;
195
- var p = $('header').getElementsByTagName('p')[0]
196
- if (p.innerHTML.match(/^\s*$/)) {
197
- p.innerHTML = title_text;
198
- } else {
199
- p.innerHTML = title_text + ": " + p.innerHTML;
200
- }
201
-
202
- /* set the link properly */
203
- title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
- var element = $('title');
205
- var item_type = "";
206
- var item_name = "";
207
- if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
- item_type = m[1];
209
- item_name = m[2];
210
- } else {
211
- item_name = element.innerHTML;
212
- }
213
- element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
- element.getElementsByTagName('a')[0].title = item_name
215
-
216
- /* breadcrumb navigation */
217
- items = item_name.split("::");
218
- items_new = item_name.split("::");
219
- file_links = $('class').getElementsByTagName('a');
220
- for (var x = 0; x < items.length - 1; x++ ){
221
- var item = items[x];
222
- link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
- regex = new RegExp(RegExp.escape(link) + '$');
224
- for (var y = 0; y < file_links.length; y++) {
225
- if (file_links[y].href.match(regex)) {
226
- items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
- break;
228
- }
229
- }
230
- }
231
- $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
- }
233
-
234
- function abbreviate(s, size) {
235
- // Try to get rid of path and extension in any case. These are not
236
- // even interesting if there is enough space.
237
-
238
- s = s.replace(/\..*$/, '');
239
- s = s.replace(/.*\//g, '');
240
-
241
- // Now this is a blatant hack.
242
-
243
- if (s == 'gosu')
244
- return ''; // Noone will ever see the link, harhar!
245
-
246
- while (s.length > size) {
247
- var old_s = s;
248
- s = s.replace(/\s|\n/mg, '');
249
- s = s.replace(/([A-Z])[a-z]+/m, '$1');
250
- if (!s || old_s == s) {
251
- return "..." + s.substring(s.length - size, s.length);
252
- }
253
- }
254
- return s;
255
- }
256
-
257
- function disableSubmit(event) {
258
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
259
- if (keyCode == 13) {
260
- return false;
261
- } else {
262
- return true;
263
- }
264
- }
265
-
266
- function filterList(id, s, event) {
267
-
268
- /* some weak escaping */
269
- s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
270
- s = RegExp.escape(s);
271
-
272
- var show_all = false;
273
- if (s.match(/^\s*$/)) {
274
- show_all = true;
275
- }
276
-
277
- links = $(id).getElementsByTagName('a')
278
- regex = new RegExp(s, 'i');
279
-
280
- for (var x = 0; x < links.length; x++) {
281
- var link = links[x];
282
- if (show_all) {
283
- link.style.display = 'inline';
284
- } else {
285
- if (link.innerHTML.match(regex)) {
286
- link.style.display = 'inline';
287
- } else {
288
- link.style.display = 'none';
289
- }
290
- }
291
- }
292
- return true;
293
- }
294
-
295
- RegExp.escape = function(text) {
296
- if (!arguments.callee.sRE) {
297
- var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
298
- arguments.callee.sRE = new RegExp(
299
- '(\\' + specials.join('|\\') + ')', 'g'
300
- );
301
- }
302
- return text.replace(arguments.callee.sRE, '\\$1');
303
- }
304
-
305
- function hacks() {
306
- // show the spacer if necessary,
307
- divs = document.getElementsByTagName('div');
308
- for(var x = 0; x < divs.length; x++) {
309
- if (divs[x].className && divs[x].className.match(/top/)) {
310
- document.getElementById('spacer').style.display = 'block';
311
- }
312
- }
313
- // remove extra colons from tables
314
- tds = document.getElementsByTagName('td');
315
- for(var x = 0; x < tds.length; x++) {
316
- str = tds[x].innerHTML
317
- if (str.charAt(str.length - 1) == ":") {
318
- tds[x].innerHTML = str.slice(0, str.length - 1)
319
- }
320
- }
321
- }
322
-
323
- addEvent(window, 'load', insertIndices, false);
324
- addEvent(window, 'load', abbreviateIndices, false);
325
- addEvent(window, 'load', stripe, false);
326
- addEvent(window, 'load', highlightSymbols, false);
327
- addEvent(window, 'load', hacks, false);
328
- </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><span><h1 id="title">
329
- File: Order of Corners.rdoc
330
- </h1></span></div><div class="clear"></div><div id="left">
331
-
332
-
333
-
334
-
335
- <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_class" onKeyUp="return filterList('class', this.value, event);"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_file" onKeyUp="return filterList('file', this.value, event);"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_method" onKeyUp="return filterList('method', this.value, event);"></input></form></div></div></div><div id="content">
336
- <div id="description"><h1>Order of Corners</h1>
337
- <p>
338
- In all functions that expect arguments for all four corners of a rectangle
339
- or quadrilateral, you can either pass clockwise coordinates, or coordinates
340
- in the following order (a Z shape):
341
- </p>
342
- <p>
343
- <img src="http://www.raschke.de/julian/temp/corner_indices.png" />
344
- </p>
345
- </div>
346
-
347
-
348
-
349
-
350
- <p></p>
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
- </div><div class="clear" id="footer">Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a><br/>slightly adapted for the Gosu project by Julian Raschke</div></div></body></html>
@@ -1,374 +0,0 @@
1
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>File: Tileability.rdoc</title><link type="text/css" media="screen" href="../.././rdoc-style.css" rel="stylesheet"/><script type="text/javascript">
2
- // Allison template
3
- // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
-
5
- var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
-
7
- function $(id) {
8
- if (document.getElementById)
9
- elem = document.getElementById(id);
10
- else if ( document.all )
11
- elem = eval("document.all." + id);
12
- else
13
- return false;
14
- return elem;
15
- }
16
-
17
- function toggle(id) {
18
- elem = $(id);
19
- elemStyle = elem.style;
20
- if (elemStyle.display == "block") {
21
- elemStyle.display = "none"
22
- } else {
23
- elemStyle.display = "block"
24
- }
25
- return true;
26
- }
27
-
28
- function toggleText(id) {
29
- elem = $(id)
30
- if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
- elem.innerHTML = "Show" + m[2];
32
- } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
- elem.innerHTML = "Hide" + m[2];
34
- }
35
- return true;
36
- }
37
-
38
- function span(s, klass) {
39
- return '<span class="' + klass + '">' + s + '</span>';
40
- }
41
-
42
- function highlightSymbols() {
43
- pres = document.getElementsByTagName('pre');
44
- for(var i = 0; i < pres.length; i++) {
45
- pre = pres[i];
46
- spans = pre.getElementsByTagName('span');
47
- for(var k = 0; k < spans.length; k++) {
48
- span = spans[k];
49
- if (span.className.match(/ruby-identifier/)) {
50
- if (span.innerHTML.match(/^:/)) {
51
- span.className += " ruby-symbol";
52
- }
53
- }
54
- }
55
- }
56
- }
57
-
58
- function hasClass(obj) {
59
- var result = false;
60
- if (obj.getAttributeNode("class") != null) {
61
- result = obj.getAttributeNode("class").value;
62
- }
63
- return result;
64
- }
65
-
66
- function stripe() {
67
- var even = true;
68
- var color = "#e4ebed";
69
- var tables = document.getElementsByTagName('table');
70
- if (tables.length == 0) { return; }
71
- for (var h = 0; h < tables.length; h++) {
72
- var trs = tables[h].getElementsByTagName("tr");
73
- for (var i = 0; i < trs.length; i++) {
74
- var tds = trs[i].getElementsByTagName("td");
75
- for (var j = 0; j < tds.length; j++) {
76
- if (hasClass(tds[j]) != "first") {
77
- var mytd = tds[j];
78
- if (even) {
79
- mytd.style.backgroundColor = color;
80
- }
81
- }
82
- }
83
- even = ! even;
84
- }
85
- }
86
- }
87
-
88
- function ajaxGet(url) {
89
- url = (href_base + url).replace('/./', '/')
90
- var req = false;
91
-
92
- if (window.ActiveXObject) {
93
- try {
94
- // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
- // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
- req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
- } catch (e) {
98
- try {
99
- /* IE 6 and maybe 5, don't know, don't care */
100
- req = new ActiveXObject("Msxml2.XMLHTTP");
101
- } catch (e) {
102
- try {
103
- req = new ActiveXObject("Microsoft.XMLHTTP");
104
- } catch (e) {
105
- req = false;
106
- }
107
- }
108
- }
109
- }
110
-
111
- /* real browsers */
112
- if (!req && window.XMLHttpRequest) {
113
- try {
114
- req = new XMLHttpRequest();
115
- } catch (e) {
116
- req = false;
117
- }
118
- }
119
-
120
- if (req) {
121
- req.open('GET', url, false);
122
- req.send(null);
123
- return req.responseText;
124
- } else {
125
- return "Ajax error";
126
- }
127
- }
128
-
129
-
130
- function addEvent(elm, evType, fn, useCapture) {
131
- if (elm.addEventListener) {
132
- elm.addEventListener(evType, fn, useCapture);
133
- return true;
134
- } else if (elm.attachEvent) {
135
- var r = elm.attachEvent('on' + evType, fn);
136
- return r;
137
- } else {
138
- elm['on' + evType] = fn;
139
- }
140
- }
141
-
142
- function insertIndices() {
143
- pages = ["class", "file", "method"]
144
- for (x in pages) {
145
- $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
- }
147
- /* mouseoverify method links */
148
- links = $('method').getElementsByTagName('a');
149
- for (var x = 0; x < links.length; x++) {
150
- if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
- links[x].innerHTML = m[1] + '<br>';
152
- links[x].title = m[2];
153
- }
154
- }
155
- /* this is stupid */
156
- $('class').style.display = "block";
157
- $('file').style.display = "block";
158
-
159
- /* has to be here because IE7 does not guarantee the onLoad callback order */
160
- abbreviateIndicesInner(["class", "file"], 25, "a");
161
- /* same, linkTitle() depends on the class link list */
162
- linkTitle();
163
- }
164
-
165
- function abbreviateIndices() {
166
- var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
- abbreviateIndicesInner(ids, 25, 'a');
168
- abbreviateIndicesInner(ids, 25, 'span');
169
- }
170
-
171
- function abbreviateIndicesInner(indices, amount, tag) {
172
- for (var x = 0; x < indices.length; x++) {
173
- var the_index = $(indices[x]);
174
- if (the_index) {
175
- links = the_index.getElementsByTagName(tag);
176
- for (var y = 0; y < links.length; y++) {
177
- var link = links[y];
178
- if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
- // avoid nesting
180
- link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
- link.title = link.innerHTML;
182
- link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
- }
184
- }
185
- }
186
- }
187
- }
188
-
189
- function linkTitle() {
190
-
191
- /* grab the correct title element from the index */
192
- var index_page = ajaxGet('index.html');
193
- title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
- document.title = title_text + " - " + document.title;
195
- var p = $('header').getElementsByTagName('p')[0]
196
- if (p.innerHTML.match(/^\s*$/)) {
197
- p.innerHTML = title_text;
198
- } else {
199
- p.innerHTML = title_text + ": " + p.innerHTML;
200
- }
201
-
202
- /* set the link properly */
203
- title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
- var element = $('title');
205
- var item_type = "";
206
- var item_name = "";
207
- if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
- item_type = m[1];
209
- item_name = m[2];
210
- } else {
211
- item_name = element.innerHTML;
212
- }
213
- element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
- element.getElementsByTagName('a')[0].title = item_name
215
-
216
- /* breadcrumb navigation */
217
- items = item_name.split("::");
218
- items_new = item_name.split("::");
219
- file_links = $('class').getElementsByTagName('a');
220
- for (var x = 0; x < items.length - 1; x++ ){
221
- var item = items[x];
222
- link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
- regex = new RegExp(RegExp.escape(link) + '$');
224
- for (var y = 0; y < file_links.length; y++) {
225
- if (file_links[y].href.match(regex)) {
226
- items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
- break;
228
- }
229
- }
230
- }
231
- $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
- }
233
-
234
- function abbreviate(s, size) {
235
- // Try to get rid of path and extension in any case. These are not
236
- // even interesting if there is enough space.
237
-
238
- s = s.replace(/\..*$/, '');
239
- s = s.replace(/.*\//g, '');
240
-
241
- // Now this is a blatant hack.
242
-
243
- if (s == 'gosu')
244
- return ''; // Noone will ever see the link, harhar!
245
-
246
- while (s.length > size) {
247
- var old_s = s;
248
- s = s.replace(/\s|\n/mg, '');
249
- s = s.replace(/([A-Z])[a-z]+/m, '$1');
250
- if (!s || old_s == s) {
251
- return "..." + s.substring(s.length - size, s.length);
252
- }
253
- }
254
- return s;
255
- }
256
-
257
- function disableSubmit(event) {
258
- var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
259
- if (keyCode == 13) {
260
- return false;
261
- } else {
262
- return true;
263
- }
264
- }
265
-
266
- function filterList(id, s, event) {
267
-
268
- /* some weak escaping */
269
- s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
270
- s = RegExp.escape(s);
271
-
272
- var show_all = false;
273
- if (s.match(/^\s*$/)) {
274
- show_all = true;
275
- }
276
-
277
- links = $(id).getElementsByTagName('a')
278
- regex = new RegExp(s, 'i');
279
-
280
- for (var x = 0; x < links.length; x++) {
281
- var link = links[x];
282
- if (show_all) {
283
- link.style.display = 'inline';
284
- } else {
285
- if (link.innerHTML.match(regex)) {
286
- link.style.display = 'inline';
287
- } else {
288
- link.style.display = 'none';
289
- }
290
- }
291
- }
292
- return true;
293
- }
294
-
295
- RegExp.escape = function(text) {
296
- if (!arguments.callee.sRE) {
297
- var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
298
- arguments.callee.sRE = new RegExp(
299
- '(\\' + specials.join('|\\') + ')', 'g'
300
- );
301
- }
302
- return text.replace(arguments.callee.sRE, '\\$1');
303
- }
304
-
305
- function hacks() {
306
- // show the spacer if necessary,
307
- divs = document.getElementsByTagName('div');
308
- for(var x = 0; x < divs.length; x++) {
309
- if (divs[x].className && divs[x].className.match(/top/)) {
310
- document.getElementById('spacer').style.display = 'block';
311
- }
312
- }
313
- // remove extra colons from tables
314
- tds = document.getElementsByTagName('td');
315
- for(var x = 0; x < tds.length; x++) {
316
- str = tds[x].innerHTML
317
- if (str.charAt(str.length - 1) == ":") {
318
- tds[x].innerHTML = str.slice(0, str.length - 1)
319
- }
320
- }
321
- }
322
-
323
- addEvent(window, 'load', insertIndices, false);
324
- addEvent(window, 'load', abbreviateIndices, false);
325
- addEvent(window, 'load', stripe, false);
326
- addEvent(window, 'load', highlightSymbols, false);
327
- addEvent(window, 'load', hacks, false);
328
- </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><span><h1 id="title">
329
- File: Tileability.rdoc
330
- </h1></span></div><div class="clear"></div><div id="left">
331
-
332
-
333
-
334
-
335
- <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_class" onKeyUp="return filterList('class', this.value, event);"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_file" onKeyUp="return filterList('file', this.value, event);"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyPress="return disableSubmit(event);" id="filter_method" onKeyUp="return filterList('method', this.value, event);"></input></form></div></div></div><div id="content">
336
- <div id="description"><h1>Tileability</h1>
337
- <p>
338
- Functions related to image creation accept a boolean &quot;tileable&quot;
339
- argument. This is a consequence of using 3D hardware acceleration. Try to
340
- notice the subtle difference between these two, overstretched images:
341
- </p>
342
- <p>
343
- <img src="http://www.raschke.de/julian/temp/hard_borders.png" />
344
- </p>
345
- <p>
346
- When you draw an image with stretching factors other than 1.0 (10.0 in this
347
- case) or at odd coordinates, it will become interpolated—which, in
348
- general, is much better than getting all pixel-y.
349
- </p>
350
- <p>
351
- But take a look at the image&#8216;s borders. The image of the left girl
352
- was created with tileable set to &#8216;false&#8217; (the default) and the
353
- borders fade out. The image of the right girl, which was created with
354
- tileable set to &#8216;true, does not fade out at all, but just ends on its
355
- borders.
356
- </p>
357
- <p>
358
- While most images should not be tileable, you should always pass true for
359
- map tiles.
360
- </p>
361
- </div>
362
-
363
-
364
-
365
-
366
- <p></p>
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
- </div><div class="clear" id="footer">Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a><br/>slightly adapted for the Gosu project by Julian Raschke</div></div></body></html>