IT科技

當前位置 /首頁/IT科技 > /列表

opengl,java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java opengl是什麼,讓我們一起了解一下?

opengl是用於渲染2D、3D向量圖形的跨語言、跨平台的應用程序編程接口(API)。這個接口由近350個不同的函數調用組成,用來繪製從簡單的圖形比特到複雜的三維景象。

opengl有什麼作用?

1、OpenGL的高效實現(利用了圖形加速硬件)存在於Windows,部分UNIX平台和Mac OS。這些實現一般由顯示設備廠商提供,而且非常依賴於該廠商提供的硬件。開放源代碼庫Mesa是一個純基於軟件的圖形API,它的代碼兼容於OpenGL。但是,由於許可證的原因,它只聲稱是一個“非常相似”的API。

2、OpenGL規範描述了繪製2D和3D圖形的抽象API。儘管這些API可以完全通過軟件實現,但它是為大部分或者全部使用硬件加速而設計的。

java opengl

3、OpenGL的API定義了若干可被客户端程序調用的函數,以及一些具名整型常量(例如,常量GL_TEXTURE_2D對應的十進制整數為3553)。雖然這些函數的定義表面上類似於C程式語言,但它們是語言獨立的。因此,OpenGL有許多語言綁定,值得一提的包括:JavaScript綁定的WebGL(基於OpenGL ES 2.0在Web瀏覽器中的進行3D渲染的API);C綁定的WGL、GLX和CGL;iOS提供的C綁定;Android提供的Java和C綁定。

4、OpenGL不僅語言無關,而且平台無關。規範隻字未提獲得和管理OpenGL上下文相關的內容,而是將這些作為細節交給底層的窗口系統。出於同樣的原因,OpenGL純粹專注於渲染,而不提供輸入、音頻以及窗口相關的API。

實戰案例,具體代碼如下:

package net.obviam.opengl;import android.app.Activity;import android.opengl.GLSurfaceView;import android.os.Bundle;import android.view.Window;import android.view.WindowManager;public class Run extends Activity {undefined/** The OpenGL view */private GLSurfaceView glSurfaceView;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {undefinedsuper.onCreate(savedInstanceState);// requesting to turn the title OFFrequestWindowFeature(Window.FEATURE_NO_TITLE);// making it full screengetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// Initiate the Open GL view and// create an instance with this activityglSurfaceView = new GLSurfaceView(this);// set our renderer to be the main renderer with// the current activity contextglSurfaceView.setRenderer(new GlRenderer());setContentView(glSurfaceView);}/** Remember to resume the glSurface */@Overrideprotected void onResume() {undefinedsuper.onResume();glSurfaceView.onResume();}/** Also pause the glSurface */@Overrideprotected void onPause() {undefinedsuper.onPause();glSurfaceView.onPause();}}

TAG標籤:opengl java #