-
Notifications
You must be signed in to change notification settings - Fork 3
/
listing16.html
executable file
·178 lines (156 loc) · 7.21 KB
/
listing16.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<!-- BEGIN META TAG INFO -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="home" href="http://developer.apple.com/">
<link rel="find" href="http://developer.apple.com/search/">
<link rel="stylesheet" type="text/css" href="../../documentation/css/adcstyle.css" title="fonts">
<script language="JavaScript" src="../../documentation/js/adc.js" type="text/javascript"></script>
<!-- END META TAG INFO -->
<!-- BEGIN TITLE -->
<title>GLChildWindowDemo - /ReadMe.txt</title>
<!-- END TITLE -->
<script language="JavaScript">
function JumpToNewPage() {
window.location=document.scpopupmenu.gotop.value;
return true;
}
</script>
</head>
<!-- BEGIN BODY OPEN -->
<body>
<!--END BODY OPEN -->
<!-- START CENTER OPEN -->
<center>
<!-- END CENTER OPEN -->
<!-- BEGIN LOGO AND SEARCH -->
<!--#include virtual="/includes/adcnavbar"-->
<!-- END LOGO AND SEARCH -->
<!-- START BREADCRUMB -->
<div id="breadcrumb">
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td scope="row"><img width="340" height="10" src="images/1dot.gif" alt=""></td>
<td><img width="340" height="10" src="images/1dot.gif" alt=""></td>
</tr>
<tr valign="middle">
<td align="left" colspan="2">
<a href="http://developer.apple.com/">ADC Home</a> > <a href="../../referencelibrary/index.html">Reference Library</a> > <a href="../../samplecode/index.html">Sample Code</a> > <a href="../../samplecode/GraphicsImaging/index.html">Graphics & Imaging</a> > <a href="../../samplecode/GraphicsImaging/idxOpenGL-date.html">OpenGL</a> > <A HREF="javascript:location.replace('index.html');">GLChildWindowDemo</A> >
</td>
</tr>
<tr>
<td colspan="2" scope="row"><img width="680" height="35" src="images/1dot.gif" alt=""></td>
</tr>
</table>
</div>
<!-- END BREADCRUMB -->
<!-- START MAIN CONTENT -->
<!-- START TITLE GRAPHIC AND INTRO-->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td><h1><div id="pagehead">GLChildWindowDemo</div></h1></td>
</tr>
</table>
<!-- END TITLE GRAPHIC AND INTRO -->
<!-- START WIDE COLUMN -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td id="scdetails">
<h2>/ReadMe.txt</h2>
<form name="scpopupmenu" onSubmit="return false;" method=post>
<p><strong>View Source Code:</strong>
<select name="gotop" onChange="JumpToNewPage();" style="width:340px"><option selected value="ingnore">Select File</option>
<option value="listing1.html">/Demo2DOverlayView.h</option>
<option value="listing2.html">/Demo2DOverlayView.m</option>
<option value="listing3.html">/DemoController.h</option>
<option value="listing4.html">/DemoController.m</option>
<option value="listing5.html">/DemoGLOverlayView.h</option>
<option value="listing6.html">/DemoGLOverlayView.m</option>
<option value="listing7.html">/DemoGLView.h</option>
<option value="listing8.html">/DemoGLView.m</option>
<option value="listing9.html">/DemoOverlayView.h</option>
<option value="listing10.html">/DemoOverlayView.m</option>
<option value="listing11.html">/DemoWindow.h</option>
<option value="listing12.html">/DemoWindow.m</option>
<option value="listing13.html">/GLChildWindowDemo_main.m</option>
<option value="listing14.html">/NSViewOverlays.h</option>
<option value="listing15.html">/NSViewOverlays.m</option>
<option value="listing16.html">/ReadMe.txt</option></select>
</p>
</form>
<p><strong><a href="GLChildWindowDemo.zip">Download Sample</a></strong> (“GLChildWindowDemo.zip”, 51.9K)<BR>
<strong><a href="GLChildWindowDemo.dmg">Download Sample</a></strong> (“GLChildWindowDemo.dmg”, 93.3K)</p>
<!--
<p><strong><a href="#">Download Sample</a></strong> (“filename.sit”, 500K)</p>
-->
</td>
</tr>
<tr>
<td scope="row"><img width="680" height="10" src="images/1dot.gif" alt=""><br>
<img height="1" width="680" src="images/1dot_919699.gif" alt=""><br>
<img width="680" height="20" src="images/1dot.gif" alt=""></td>
</tr>
<tr>
<td scope="row">
<!--googleon: index -->
<pre class="sourcecodebox">Read Me: GL Child Window Demo
This demo shows off a way of using Cocoa's child windows along with Quartz
Extreme to provide 2D or 3D overlays above 3D content.
The user interface is fairly straightforward, with some colorwell objects on
the right to let you play with the OpenGL lighting on the cube, a radio button
to switch between 2D and 3D overlay, and a checkbox to make the background of
the 3D cube view opaque or transparent.
The 2D and 3D overlay views both do basically the same thing, except that the
2D code also does a little bit of text rendering. The DemoOverlayView
superclass handles the line animation, while the Demo2DOverlayView and
DemoGLOverlayView subclasses handle the actual drawing for the two different
rendering APIs.
Probably the most interesting code lives in the NSViewOverlays.m source file.
This code contains a number of utility NSWindow and NSView subclasses that help
implement a category on NSView that adds the ability to transparently add an
"overlay" view to another view. The API is actually very small and should be
obvious in it's use (check out NSViewOverlays.h for the API).
Getting everything right can be a little bit tricky, and this code goes to
great lengths to ensure a flicker-free display when resizing the content along
with the child windows. This app uses a convenient call in Carbon.framework
that can be used to temporarily disable screen updates while we repaint a
number of windows and views. Once that's done, screen updates are re-enabled
and everything is updated on the screen at once.
</pre>
<!--googleoff: index -->
</td>
</tr>
</table>
<!-- END WIDE COLUMN -->
<!-- END MAIN CONTENT -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><div style="width: 100%; height: 1px; background-color: #919699; margin-top: 5px; margin-bottom: 15px"></div></td>
</tr>
<tr>
<td align="center"><br/>
<table border="0" cellpadding="0" cellspacing="0" class="graybox">
<tr>
<th>Did this document help you?</th>
</tr>
<tr>
<td>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=1&url=/samplecode/GLChildWindowDemo/listing16.html%3Fid%3DDTS10000526-1.0&media=dvd" target=_new>Yes</a>: Tell us what works for you.</div>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=2&url=/samplecode/GLChildWindowDemo/listing16.html%3Fid%3DDTS10000526-1.0&media=dvd" target=_new>It’s good, but:</a> Report typos, inaccuracies, and so forth.</div>
<div><a href="http://developer.apple.com/feedback/?v=3&url=/samplecode/GLChildWindowDemo/listing16.html%3Fid%3DDTS10000526-1.0&media=dvd" target=_new>It wasn’t helpful</a>: Tell us what would have helped.</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- START BOTTOM APPLE NAVIGATION -->
<!--#include virtual="/includes/footer"-->
<!-- END BOTTOM APPLE NAVIGATION -->
<!-- START CENTER CLOSE -->
</center>
<!-- END CENTER CLOSE -->
</body>
</html>