`

Eclipse RCP开发入门学习笔记——06.OpenGL

阅读更多

---------------------------------------------------------------------------------------------------

学习: http://www.blogjava.net/youxia/archive/2006/12/09/86513.html

---------------------------------------------------------------------------------------------------

 

1. 下载并安装OpenGL插件:

下载地址: http://www.eclipse.org/swt/opengl/

 

2. 给本项目添加依赖:

双击 plugin.xml 打开编辑窗口,选择 "Dependencies" 选项卡, 点击 "Required Plug-ins" 下的 "Add...",输入 "org.eclipse.opengl" , 如下图:

回到前一界面,可在项目的 "Plug-in Dependencies" 下发现加入了 ogl.jar,  如下图:

 

3. 新建视图 OpenGLView:

package hellorcp.opengl;

import org.eclipse.opengl.GL;
import org.eclipse.opengl.GLU;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.opengl.GLCanvas;
import org.eclipse.swt.opengl.GLData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;

public class OpenGLView extends ViewPart {
	GLCanvas canvas;

	@Override
	public void createPartControl(Composite parent) {
		GLData data = new GLData();
		data.depthSize = 1;
		data.doubleBuffer = true;
		canvas = new GLCanvas(parent, SWT.NO_BACKGROUND, data);
		canvas.addControlListener(new ControlAdapter() {
			public void controlResized(ControlEvent e) {
				Rectangle rect = canvas.getClientArea();
				GL.glViewport(0, 0, rect.width, rect.height);

				// 选择投影矩阵
				GL.glMatrixMode(GL.GL_PROJECTION);
				// 重置投影矩阵
				GL.glLoadIdentity();
				// 设置窗口比例和透视图
				GLU.gluPerspective(45.0f, (float) rect.width
						/ (float) rect.height, 0.1f, 100.0f);
				// 选择模型观察矩阵
				GL.glMatrixMode(GL.GL_MODELVIEW);
				// 重置模型观察矩阵
				GL.glLoadIdentity();

				// 黑色背景
				GL.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
				// 设置深度缓存
				GL.glClearDepth(1.0f);
				// 启动深度测试
				GL.glEnable(GL.GL_DEPTH_TEST);
				// 选择深度测试类型
				GL.glDepthFunc(GL.GL_LESS);
				// 启用阴影平滑
				GL.glShadeModel(GL.GL_SMOOTH);
				// 精细修正透视图
				GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
				// 清除屏幕和深度缓存
				GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
				// 重置当前的模型观察矩阵
				GL.glLoadIdentity();
			}
		});
		canvas.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent e) {
				dispose();
			}
		});

		Refresher rf = new Refresher(canvas);
		rf.run();
	}

	@Override
	public void setFocus() {
		// TODO 自动生成方法存根
	}

}

 

4. 修改 Perspective.java 为:

package hellorcp;

import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;

public class Perspective implements IPerspectiveFactory {

	public void createInitialLayout(IPageLayout layout) {
		// FirstView
		String editorArea = layout.getEditorArea();
//		layout.addView("hellorcp.view.FirstView", IPageLayout.RIGHT, 0.2f,
//				editorArea);

		// SecondView
//		layout.setEditorAreaVisible(false);
//		layout.addView("hellorcp.view.SecondView", IPageLayout.RIGHT, 0.5f,
//				editorArea);
		
		// OleView
//		layout.addView("hellorcp.ole.OleView", IPageLayout.RIGHT, 0.5f,
//				editorArea);
		
		// CanvasView
//		layout.addView("hellorcp.canvas.CanvasView", IPageLayout.RIGHT, 0.5f,
//				editorArea);
		
		// OpenGLView
		layout.addView("hellorcp.opengl.OpenGLView", IPageLayout.RIGHT, 0.5f,
				editorArea);
	}

}

 

5. 在 plugin.xml 中配置view:

         <view
         	class="hellorcp.opengl.OpenGLView"
         	id="hellorcp.opengl.OpenGLView"
         	name="OpenGL" />

 

6. 保存,运行,效果如下:

 

 

 

  • 大小: 39.3 KB
  • 大小: 71.1 KB
  • 大小: 13.9 KB
分享到:
评论

相关推荐

    eclipse rcp 插件开发学习笔记.pdf 15-24章

    在提供的压缩包中,包含了关于Eclipse RCP插件开发15至24章的学习笔记,这些章节覆盖了多个关键主题,下面将对这些主题进行详细解读。 1. **第15章:对话框和向导(Dialogs and Wizards)** - 在Eclipse RCP中,...

    eclipse RCP Plug-in开发自学教程.pdf

    如果您已经具备了这些基础知识,那么学习Eclipse RCP插件式开发将变得非常容易。 学习Eclipse RCP插件式开发的难点可能在于: 1. Eclipse RCP的学习曲线较陡,需要一定的Java基础和Eclipse基础知识。 2. RCP插件式...

    eclipse rcp 插件开发学习笔记.pdf 1-14章

    以下是对Eclipse RCP插件开发学习笔记1-14章的详细知识点解析: 1. **第1章 Eclipse平台简介**: - Eclipse平台是基于OSGi(Open Service Gateway Initiative)标准的,提供了插件模型,使得开发者可以构建、运行...

    eclipse rcp应用系统开发方法与实战源代码.zip

    在"eclipse rcp应用系统开发方法与实战源代码.zip"中,我们可以学习到以下关键知识点: 1. **Eclipse RCP架构**:理解Eclipse RCP的基础架构非常重要,包括插件(Plugins)、工作台(Workbench)、视图(Views)、...

    Eclipse RCP 开发入门

    ### Eclipse RCP 开发入门详解 #### 一、Eclipse RCP 概述 Eclipse Rich Client Platform (RCP) 是一种基于Java的框架和技术集合,用于构建具有丰富用户体验的应用程序。Eclipse RCP 提供了一种灵活的方式来构建...

    Eclipse RCP Plugin 开发自学入门指南(CEC首发)

    1.2 ECLIPSE RCP 建设风格——插件,扩展和扩展点 ..................................................................... 9 1.3 RCP与PLUGIN ....................................................................

    Eclipse的RCP开发的入门教程

    最后,"使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军.doc"将带领开发者进入更高级的主题,即如何在RCP应用中集成OpenGL,实现高性能的3D图形渲染。这对于需要强大图形处理能力的应用来说是至关重要的。 ...

    Eclipse RCP 开发资料

    Eclipse RCP 开发资料打包下载 目录如下: RCP程序设计.pdf(推荐) Addison.Wesley.Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications.Oct.2005.chm Eclipse+RCP入门.pdf example_...

    eclipse rcp开发入六教程及培训资料

    网络中最全面最合适学习或开发...包含eclipse rcp开发入门教程; eclipse rcp基础教程;eclipse rcp开发自学教程; eclipse rcp开发培训教程及ppt等相关资料;教程中包含一步步操作实例,包含对开发原理的讲解与说明;

    Eclipse RCP.pdf清晰版

    ### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 **Eclipse RCP**(Rich Client Platform)是一种构建丰富客户端应用程序的框架,它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,...

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    EclipseRCP系统开发与实战(书).rar

    这本书《Eclipse RCP系统开发与实战》显然是针对想要学习和掌握Eclipse RCP技术的程序员,通过实战案例帮助读者深入理解Eclipse RCP的开发过程。 1. **Eclipse RCP基础知识** - Eclipse RCP是一种基于Java的开发...

    通过例子学习EclipseRCP开发

    ### 通过例子学习Eclipse RCP开发 #### Eclipse RCP概览 Eclipse RCP(Rich Client Platform,富客户端平台)是一种基于Java的框架和技术集合,用于构建具有丰富用户界面的应用程序。它允许开发者创建高度可定制且...

    rcp自己通过扩展点新建java项目

    在Eclipse RCP(Rich Client Platform)开发中,创建自定义的新建项目向导是提升用户体验和增强应用程序功能的重要步骤。`rcp自己通过扩展点新建java项目`这个主题涉及了如何利用Eclipse的插件体系和扩展点机制来...

    ECLIPSE RCP应用系统开发方法与实战.pdf

    《ECLIPSE RCP应用系统开发方法与实战》是一本深入探讨Eclipse Rich Client Platform (RCP) 开发技术的书籍。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,允许开发者构建功能丰富的桌面应用程序。这本书...

    [Eclipse.RCP深入浅出].Jeff.McAffer等.扫描版.pdf

    [Eclipse.RCP深入浅出].Jeff.McAffer等.扫描版.pdf 还有其他两本在我的资源分享页面.

    Eclipse RCP开发教程

    **Eclipse RCP 开发教程** Eclipse Rich Client Platform (RCP) 是一个用于构建桌面应用程序的框架,它基于 Eclipse IDE 平台,允许开发者利用 Eclipse 的强大功能和丰富的插件系统来创建自定义的、可扩展的应用...

    eclipse rcp 开发基础教程

    Eclipse RCP(Rich Client Platform)是基于Java的开发框架,用于构建桌面应用程序。它提供了构建用户界面所需的各种组件和工具,允许开发者创建功能丰富的、交互式的应用程序。Eclipse RCP利用Eclipse IDE的强大...

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    《ECLIPSE+RCP应用系统开发方法与实战》这本书是高岗先生关于使用Eclipse RCP(Rich Client Platform)进行应用系统开发的一本实战指南。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建...

Global site tag (gtag.js) - Google Analytics