Lines 2-7
Link Here
|
2 |
* Copyright (C) 2013 United States Government as represented by the Administrator of the |
2 |
* Copyright (C) 2013 United States Government as represented by the Administrator of the |
3 |
* National Aeronautics and Space Administration. |
3 |
* National Aeronautics and Space Administration. |
4 |
* All Rights Reserved. |
4 |
* All Rights Reserved. |
|
|
5 |
* |
6 |
* Copyright (C) 2013 JogAmp Community. All rights reserved. |
7 |
* |
8 |
* If you guys send me code w/o further declaration it is |
9 |
* under the 'BSD License' ! |
5 |
*/ |
10 |
*/ |
6 |
|
11 |
|
7 |
// package gov.nasa.worldwindx.examples.multiwindow; |
12 |
// package gov.nasa.worldwindx.examples.multiwindow; |
Lines 18-24
Link Here
|
18 |
* @author tag |
23 |
* @author tag |
19 |
* @version $Id$ |
24 |
* @version $Id$ |
20 |
*/ |
25 |
*/ |
21 |
public class JOGLTabbedPaneUsage extends JFrame |
26 |
public class JOGLTabbedPaneUsageFixed extends JFrame |
22 |
{ |
27 |
{ |
23 |
int[] bufferId; |
28 |
int[] bufferId; |
24 |
|
29 |
|
Lines 28-34
Link Here
|
28 |
|
33 |
|
29 |
public WWPanel(GLCanvas shareWith, int width, int height) |
34 |
public WWPanel(GLCanvas shareWith, int width, int height) |
30 |
{ |
35 |
{ |
31 |
canvas = shareWith != null ? new GLCanvas(getCaps(), shareWith.getContext()) : new GLCanvas(); |
36 |
GLContext sharedCtx = shareWith != null ? shareWith.getContext() : null; |
|
|
37 |
System.err.println("XXX WWPanel: shareWith "+shareWith+", sharedCtx "+sharedCtx); |
38 |
canvas = new GLCanvas(getCaps(), sharedCtx); // same caps for 1st and 2nd shared ctx ! |
32 |
canvas.setSize(new java.awt.Dimension(width, height)); |
39 |
canvas.setSize(new java.awt.Dimension(width, height)); |
33 |
|
40 |
|
34 |
setLayout(new BorderLayout(5, 5)); |
41 |
setLayout(new BorderLayout(5, 5)); |
Lines 42-48
Link Here
|
42 |
@Override |
49 |
@Override |
43 |
public void init(GLAutoDrawable glAutoDrawable) |
50 |
public void init(GLAutoDrawable glAutoDrawable) |
44 |
{ |
51 |
{ |
45 |
// glAutoDrawable.setGL(new DebugGL2(glAutoDrawable.getGL().getGL2())); |
52 |
if (bufferId == null) { |
|
|
53 |
makeVBO(glAutoDrawable); |
54 |
System.err.println("XXX Create Buffer "+bufferId[0]); |
55 |
} else { |
56 |
System.err.println("XXX Reuse Buffer "+bufferId[0]); |
57 |
} |
46 |
} |
58 |
} |
47 |
|
59 |
|
48 |
@Override |
60 |
@Override |
Lines 53-61
Link Here
|
53 |
@Override |
65 |
@Override |
54 |
public void display(GLAutoDrawable glAutoDrawable) |
66 |
public void display(GLAutoDrawable glAutoDrawable) |
55 |
{ |
67 |
{ |
56 |
if (bufferId == null) |
|
|
57 |
makeVBO(glAutoDrawable); |
58 |
|
59 |
drawFrame(glAutoDrawable); |
68 |
drawFrame(glAutoDrawable); |
60 |
glAutoDrawable.swapBuffers(); |
69 |
glAutoDrawable.swapBuffers(); |
61 |
} |
70 |
} |
Lines 88-95
Link Here
|
88 |
gl.glColor3f(1, 1, 1); |
97 |
gl.glColor3f(1, 1, 1); |
89 |
|
98 |
|
90 |
gl.glEnableClientState(GL2.GL_VERTEX_ARRAY); |
99 |
gl.glEnableClientState(GL2.GL_VERTEX_ARRAY); |
91 |
gl.glVertexPointer(3, GL2.GL_FLOAT, 0, 0); |
100 |
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, bufferId[0]); // 1st bind the VBO |
92 |
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, bufferId[0]); |
101 |
gl.glVertexPointer(3, GL2.GL_FLOAT, 0, 0); // 2nd use it - duh! |
93 |
gl.glDrawArrays(GL2.GL_LINES, 0, 2); |
102 |
gl.glDrawArrays(GL2.GL_LINES, 0, 2); |
94 |
|
103 |
|
95 |
gl.glFlush(); |
104 |
gl.glFlush(); |
Lines 110-129
Link Here
|
110 |
gl.glBufferData(GL2.GL_ARRAY_BUFFER, vertices.capacity() * 4, vertices.rewind(), GL2.GL_STATIC_DRAW); |
119 |
gl.glBufferData(GL2.GL_ARRAY_BUFFER, vertices.capacity() * 4, vertices.rewind(), GL2.GL_STATIC_DRAW); |
111 |
} |
120 |
} |
112 |
|
121 |
|
113 |
public JOGLTabbedPaneUsage() |
122 |
public JOGLTabbedPaneUsageFixed() |
114 |
{ |
123 |
{ |
115 |
try |
124 |
try |
116 |
{ |
125 |
{ |
|
|
126 |
GLProfile.initSingleton(); // Lets have init debug messages above below marker |
127 |
System.err.println("XXX START DEMO XXX"); |
128 |
|
117 |
// Create the application frame and the tabbed pane and add the pane to the frame. |
129 |
// Create the application frame and the tabbed pane and add the pane to the frame. |
118 |
JTabbedPane tabbedPanel = new JTabbedPane(); |
130 |
JTabbedPane tabbedPanel = new JTabbedPane(); |
119 |
this.add(tabbedPanel, BorderLayout.CENTER); |
131 |
this.add(tabbedPanel, BorderLayout.CENTER); |
120 |
|
132 |
|
121 |
// Create two World Windows that share resources. |
133 |
// Create two World Windows that share resources. |
122 |
WWPanel wwpA = new WWPanel(null, 600, 600); |
134 |
WWPanel wwpA = new WWPanel(null, 600, 600); |
123 |
WWPanel wwpB = new WWPanel(wwpA.canvas, wwpA.getWidth(), wwpA.getHeight()); |
135 |
// ctx of wwpA is 'born' @ addNotify ! |
|
|
136 |
// WWPanel wwpB = new WWPanel(wwpA.canvas, wwpA.getWidth(), wwpA.getHeight()); |
124 |
|
137 |
|
125 |
tabbedPanel.add(wwpA, "Window A"); |
138 |
tabbedPanel.add(wwpA, "Window A"); |
126 |
tabbedPanel.add(wwpB, "Window B"); |
139 |
// tabbedPanel.add(wwpB, "Window B"); |
127 |
|
140 |
|
128 |
// Add the card panel to the frame. |
141 |
// Add the card panel to the frame. |
129 |
this.add(tabbedPanel, BorderLayout.CENTER); |
142 |
this.add(tabbedPanel, BorderLayout.CENTER); |
Lines 133-139
Link Here
|
133 |
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
146 |
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); |
134 |
pack(); |
147 |
pack(); |
135 |
setResizable(true); |
148 |
setResizable(true); |
|
|
149 |
System.err.println("XXX SetVisible XXX"); |
136 |
setVisible(true); |
150 |
setVisible(true); |
|
|
151 |
|
152 |
// Now we shall be ready for wwpB - Assuming all sequential on EDT |
153 |
WWPanel wwpB = new WWPanel(wwpA.canvas, wwpA.getWidth(), wwpA.getHeight()); |
154 |
tabbedPanel.add(wwpB, "Window B"); |
155 |
pack(); |
156 |
validate(); |
137 |
} |
157 |
} |
138 |
catch (Exception e) |
158 |
catch (Exception e) |
139 |
{ |
159 |
{ |
Lines 161-167
Link Here
|
161 |
{ |
181 |
{ |
162 |
public void run() |
182 |
public void run() |
163 |
{ |
183 |
{ |
164 |
new JOGLTabbedPaneUsage(); |
184 |
new JOGLTabbedPaneUsageFixed(); |
165 |
} |
185 |
} |
166 |
}); |
186 |
}); |
167 |
} |
187 |
} |