<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FOpenGL</id>
		<title>Java/SWT JFace Eclipse/OpenGL - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSWT_JFace_Eclipse%2FOpenGL"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/OpenGL&amp;action=history"/>
		<updated>2026-04-16T09:43:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/OpenGL&amp;diff=5672&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/OpenGL&amp;diff=5672&amp;oldid=prev"/>
				<updated>2010-06-01T05:56:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:56, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/OpenGL&amp;diff=5671&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/SWT_JFace_Eclipse/OpenGL&amp;diff=5671&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== draw a rectangle using the org.eclipse.opengl OpenGL binding ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     Sebastian Davids - initial implementation&lt;br /&gt;
 *     IBM Corporation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * SWT OpenGL snippet: draw a square&lt;br /&gt;
 * &lt;br /&gt;
 * This snippet requires the experimental org.eclipse.swt.opengl plugin, which&lt;br /&gt;
 * is not included in swt by default.  For information on this plugin see&lt;br /&gt;
 * http://www.eclipse.org/swt/opengl/opengl.html  &lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.2&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.opengl.*;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.*;&lt;br /&gt;
import org.eclipse.swt.graphics.*;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.opengl.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
public class Snippet174 {&lt;br /&gt;
public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setText(&amp;quot;OpenGL in SWT&amp;quot;);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    GLData data = new GLData();&lt;br /&gt;
    data.doubleBuffer = true;&lt;br /&gt;
    final GLCanvas canvas = new GLCanvas(shell, SWT.NO_BACKGROUND, data);&lt;br /&gt;
    canvas.addControlListener(new ControlAdapter() {&lt;br /&gt;
        public void controlResized(ControlEvent e) {&lt;br /&gt;
            resize(canvas);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
    init(canvas);&lt;br /&gt;
    new Runnable() {&lt;br /&gt;
        public void run() {&lt;br /&gt;
            if (canvas.isDisposed()) return;&lt;br /&gt;
            render();&lt;br /&gt;
            canvas.swapBuffers();&lt;br /&gt;
            canvas.getDisplay().timerExec(50, this);&lt;br /&gt;
        }&lt;br /&gt;
    }.run();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
        if (!display.readAndDispatch()) display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
}&lt;br /&gt;
static void init(GLCanvas canvas) {&lt;br /&gt;
    canvas.setCurrent();&lt;br /&gt;
    resize(canvas);&lt;br /&gt;
    GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);&lt;br /&gt;
    GL.glColor3f(0.0f, 0.0f, 0.0f);&lt;br /&gt;
    GL.glClearDepth(1.0f);&lt;br /&gt;
    GL.glEnable(GL.GL_DEPTH_TEST);&lt;br /&gt;
    GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);&lt;br /&gt;
}&lt;br /&gt;
static void render() {&lt;br /&gt;
    GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
    GL.glLoadIdentity();&lt;br /&gt;
    GL.glTranslatef(0.0f, 0.0f, -6.0f);&lt;br /&gt;
    GL.glBegin(GL.GL_QUADS);&lt;br /&gt;
    GL.glVertex3f(-1.0f, 1.0f, 0.0f);&lt;br /&gt;
    GL.glVertex3f(1.0f, 1.0f, 0.0f);&lt;br /&gt;
    GL.glVertex3f(1.0f, -1.0f, 0.0f);&lt;br /&gt;
    GL.glVertex3f(-1.0f, -1.0f, 0.0f);&lt;br /&gt;
    GL.glEnd();&lt;br /&gt;
}&lt;br /&gt;
static void resize(GLCanvas canvas) {&lt;br /&gt;
    canvas.setCurrent();&lt;br /&gt;
    Rectangle rect = canvas.getClientArea();&lt;br /&gt;
    int width = rect.width;&lt;br /&gt;
    int height = Math.max(rect.height, 1);&lt;br /&gt;
    GL.glViewport(0, 0, width, height);&lt;br /&gt;
    GL.glMatrixMode(GL.GL_PROJECTION);&lt;br /&gt;
    GL.glLoadIdentity();&lt;br /&gt;
    float aspect = (float) width / (float) height;&lt;br /&gt;
    GLU.gluPerspective(45.0f, aspect, 0.5f, 400.0f);&lt;br /&gt;
    GL.glMatrixMode(GL.GL_MODELVIEW);&lt;br /&gt;
    GL.glLoadIdentity();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== draw a rotating torus using the JOGL OpenGL binding ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * SWT OpenGL snippet: use JOGL to draw to an SWT GLCanvas&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.2&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.*;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
import org.eclipse.swt.graphics.*;&lt;br /&gt;
import org.eclipse.swt.opengl.GLCanvas;&lt;br /&gt;
import org.eclipse.swt.opengl.GLData;&lt;br /&gt;
import javax.media.opengl.GL;&lt;br /&gt;
import javax.media.opengl.GLContext;&lt;br /&gt;
import javax.media.opengl.GLDrawableFactory;&lt;br /&gt;
import javax.media.opengl.glu.GLU;&lt;br /&gt;
public class Snippet209 {&lt;br /&gt;
  static void drawTorus(GL gl, float r, float R, int nsides, int rings) {&lt;br /&gt;
    float ringDelta = 2.0f * (float) Math.PI / rings;&lt;br /&gt;
    float sideDelta = 2.0f * (float) Math.PI / nsides;&lt;br /&gt;
    float theta = 0.0f, cosTheta = 1.0f, sinTheta = 0.0f;&lt;br /&gt;
    for (int i = rings - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
      float theta1 = theta + ringDelta;&lt;br /&gt;
      float cosTheta1 = (float) Math.cos(theta1);&lt;br /&gt;
      float sinTheta1 = (float) Math.sin(theta1);&lt;br /&gt;
      gl.glBegin(GL.GL_QUAD_STRIP);&lt;br /&gt;
      float phi = 0.0f;&lt;br /&gt;
      for (int j = nsides; j &amp;gt;= 0; j--) {&lt;br /&gt;
        phi += sideDelta;&lt;br /&gt;
        float cosPhi = (float) Math.cos(phi);&lt;br /&gt;
        float sinPhi = (float) Math.sin(phi);&lt;br /&gt;
        float dist = R + r * cosPhi;&lt;br /&gt;
        gl.glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi);&lt;br /&gt;
        gl.glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi);&lt;br /&gt;
        gl.glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi);&lt;br /&gt;
        gl.glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi);&lt;br /&gt;
      }&lt;br /&gt;
      gl.glEnd();&lt;br /&gt;
      theta = theta1;&lt;br /&gt;
      cosTheta = cosTheta1;&lt;br /&gt;
      sinTheta = sinTheta1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String [] args) {&lt;br /&gt;
    final Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    Composite comp = new Composite(shell, SWT.NONE);&lt;br /&gt;
    comp.setLayout(new FillLayout());&lt;br /&gt;
    GLData data = new GLData ();&lt;br /&gt;
    data.doubleBuffer = true;&lt;br /&gt;
    final GLCanvas canvas = new GLCanvas(comp, SWT.NONE, data);&lt;br /&gt;
    canvas.setCurrent();&lt;br /&gt;
    final GLContext context = GLDrawableFactory.getFactory().createExternalGLContext();&lt;br /&gt;
    canvas.addListener(SWT.Resize, new Listener() {&lt;br /&gt;
      public void handleEvent(Event event) {&lt;br /&gt;
        Rectangle bounds = canvas.getBounds();&lt;br /&gt;
        float fAspect = (float) bounds.width / (float) bounds.height;&lt;br /&gt;
        canvas.setCurrent();&lt;br /&gt;
        context.makeCurrent();&lt;br /&gt;
        GL gl = context.getGL ();&lt;br /&gt;
        gl.glViewport(0, 0, bounds.width, bounds.height);&lt;br /&gt;
        gl.glMatrixMode(GL.GL_PROJECTION);&lt;br /&gt;
        gl.glLoadIdentity();&lt;br /&gt;
        GLU glu = new GLU();&lt;br /&gt;
        glu.gluPerspective(45.0f, fAspect, 0.5f, 400.0f);&lt;br /&gt;
        gl.glMatrixMode(GL.GL_MODELVIEW);&lt;br /&gt;
        gl.glLoadIdentity();&lt;br /&gt;
        context.release();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    context.makeCurrent();&lt;br /&gt;
    GL gl = context.getGL ();&lt;br /&gt;
    gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);&lt;br /&gt;
    gl.glColor3f(1.0f, 0.0f, 0.0f);&lt;br /&gt;
    gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);&lt;br /&gt;
    gl.glClearDepth(1.0);&lt;br /&gt;
    gl.glLineWidth(2);&lt;br /&gt;
    gl.glEnable(GL.GL_DEPTH_TEST);&lt;br /&gt;
    context.release();&lt;br /&gt;
    shell.setText(&amp;quot;SWT/JOGL Example&amp;quot;);&lt;br /&gt;
    shell.setSize(640, 480);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    display.asyncExec(new Runnable() {&lt;br /&gt;
      int rot = 0;&lt;br /&gt;
      public void run() {&lt;br /&gt;
        if (!canvas.isDisposed()) {&lt;br /&gt;
          canvas.setCurrent();&lt;br /&gt;
          context.makeCurrent();&lt;br /&gt;
          GL gl = context.getGL ();&lt;br /&gt;
          gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
          gl.glClearColor(.3f, .5f, .8f, 1.0f);&lt;br /&gt;
          gl.glLoadIdentity();&lt;br /&gt;
          gl.glTranslatef(0.0f, 0.0f, -10.0f);&lt;br /&gt;
          float frot = rot;&lt;br /&gt;
          gl.glRotatef(0.15f * rot, 2.0f * frot, 10.0f * frot, 1.0f);&lt;br /&gt;
          gl.glRotatef(0.3f * rot, 3.0f * frot, 1.0f * frot, 1.0f);&lt;br /&gt;
          rot++;&lt;br /&gt;
          gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_LINE);&lt;br /&gt;
          gl.glColor3f(0.9f, 0.9f, 0.9f);&lt;br /&gt;
          drawTorus(gl, 1, 1.9f + ((float) Math.sin((0.004f * frot))), 15, 15);&lt;br /&gt;
          canvas.swapBuffers();&lt;br /&gt;
          context.release();&lt;br /&gt;
          display.asyncExec(this);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== draw a rotating torus using the LWJGL OpenGL binding ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * SWT OpenGL snippet: use LWJGL to draw to an SWT GLCanvas&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.2&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.*;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
import org.eclipse.swt.graphics.*;&lt;br /&gt;
import org.eclipse.swt.opengl.GLCanvas;&lt;br /&gt;
import org.eclipse.swt.opengl.GLData;&lt;br /&gt;
import org.lwjgl.opengl.GL11;&lt;br /&gt;
import org.lwjgl.opengl.GLContext;&lt;br /&gt;
import org.lwjgl.opengl.glu.GLU;&lt;br /&gt;
import org.lwjgl.LWJGLException;&lt;br /&gt;
public class Snippet195 {&lt;br /&gt;
  static void drawTorus(float r, float R, int nsides, int rings) {&lt;br /&gt;
    float ringDelta = 2.0f * (float) Math.PI / rings;&lt;br /&gt;
    float sideDelta = 2.0f * (float) Math.PI / nsides;&lt;br /&gt;
    float theta = 0.0f, cosTheta = 1.0f, sinTheta = 0.0f;&lt;br /&gt;
    for (int i = rings - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
      float theta1 = theta + ringDelta;&lt;br /&gt;
      float cosTheta1 = (float) Math.cos(theta1);&lt;br /&gt;
      float sinTheta1 = (float) Math.sin(theta1);&lt;br /&gt;
      GL11.glBegin(GL11.GL_QUAD_STRIP);&lt;br /&gt;
      float phi = 0.0f;&lt;br /&gt;
      for (int j = nsides; j &amp;gt;= 0; j--) {&lt;br /&gt;
        phi += sideDelta;&lt;br /&gt;
        float cosPhi = (float) Math.cos(phi);&lt;br /&gt;
        float sinPhi = (float) Math.sin(phi);&lt;br /&gt;
        float dist = R + r * cosPhi;&lt;br /&gt;
        GL11.glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi);&lt;br /&gt;
        GL11.glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi);&lt;br /&gt;
        GL11.glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi);&lt;br /&gt;
        GL11.glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi);&lt;br /&gt;
      }&lt;br /&gt;
      GL11.glEnd();&lt;br /&gt;
      theta = theta1;&lt;br /&gt;
      cosTheta = cosTheta1;&lt;br /&gt;
      sinTheta = sinTheta1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String [] args) {&lt;br /&gt;
    final Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    Composite comp = new Composite(shell, SWT.NONE);&lt;br /&gt;
    comp.setLayout(new FillLayout());&lt;br /&gt;
    GLData data = new GLData ();&lt;br /&gt;
    data.doubleBuffer = true;&lt;br /&gt;
    final GLCanvas canvas = new GLCanvas(comp, SWT.NONE, data);&lt;br /&gt;
    canvas.setCurrent();&lt;br /&gt;
    try {&lt;br /&gt;
      GLContext.useContext(canvas);&lt;br /&gt;
    } catch(LWJGLException e) { e.printStackTrace(); }&lt;br /&gt;
    canvas.addListener(SWT.Resize, new Listener() {&lt;br /&gt;
      public void handleEvent(Event event) {&lt;br /&gt;
        Rectangle bounds = canvas.getBounds();&lt;br /&gt;
        float fAspect = (float) bounds.width / (float) bounds.height;&lt;br /&gt;
        canvas.setCurrent();&lt;br /&gt;
        try {&lt;br /&gt;
          GLContext.useContext(canvas);&lt;br /&gt;
        } catch(LWJGLException e) { e.printStackTrace(); }&lt;br /&gt;
        GL11.glViewport(0, 0, bounds.width, bounds.height);&lt;br /&gt;
        GL11.glMatrixMode(GL11.GL_PROJECTION);&lt;br /&gt;
        GL11.glLoadIdentity();&lt;br /&gt;
        GLU.gluPerspective(45.0f, fAspect, 0.5f, 400.0f);&lt;br /&gt;
        GL11.glMatrixMode(GL11.GL_MODELVIEW);&lt;br /&gt;
        GL11.glLoadIdentity();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    GL11.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);&lt;br /&gt;
    GL11.glColor3f(1.0f, 0.0f, 0.0f);&lt;br /&gt;
    GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);&lt;br /&gt;
    GL11.glClearDepth(1.0);&lt;br /&gt;
    GL11.glLineWidth(2);&lt;br /&gt;
    GL11.glEnable(GL11.GL_DEPTH_TEST);&lt;br /&gt;
    shell.setText(&amp;quot;SWT/LWJGL Example&amp;quot;);&lt;br /&gt;
    shell.setSize(640, 480);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    display.asyncExec(new Runnable() {&lt;br /&gt;
      int rot = 0;&lt;br /&gt;
      public void run() {&lt;br /&gt;
        if (!canvas.isDisposed()) {&lt;br /&gt;
          canvas.setCurrent();&lt;br /&gt;
          try {&lt;br /&gt;
            GLContext.useContext(canvas);&lt;br /&gt;
          } catch(LWJGLException e) { e.printStackTrace(); }&lt;br /&gt;
          GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
          GL11.glClearColor(.3f, .5f, .8f, 1.0f);&lt;br /&gt;
          GL11.glLoadIdentity();&lt;br /&gt;
          GL11.glTranslatef(0.0f, 0.0f, -10.0f);&lt;br /&gt;
          float frot = rot;&lt;br /&gt;
          GL11.glRotatef(0.15f * rot, 2.0f * frot, 10.0f * frot, 1.0f);&lt;br /&gt;
          GL11.glRotatef(0.3f * rot, 3.0f * frot, 1.0f * frot, 1.0f);&lt;br /&gt;
          rot++;&lt;br /&gt;
          GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);&lt;br /&gt;
          GL11.glColor3f(0.9f, 0.9f, 0.9f);&lt;br /&gt;
          drawTorus(1, 1.9f + ((float) Math.sin((0.004f * frot))), 15, 15);&lt;br /&gt;
          canvas.swapBuffers();&lt;br /&gt;
          display.asyncExec(this);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>