java opengl是什么,讓我們一起了解一下?
opengl是用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口(API)。這個接口由近350個不同的函數調用組成,用來繪制從簡單的圖形比特到復雜的三維景象。
opengl有什么作用?
1、OpenGL的高效實現(利用了圖形加速硬件)存在于Windows,部分UNIX平臺和Mac OS。這些實現一般由顯示設備廠商提供,而且非常依賴于該廠商提供的硬件。開放源代碼庫Mesa是一個純基于軟件的圖形API,它的代碼兼容于OpenGL。但是,由于許可證的原因,它只聲稱是一個“非常相似”的API。
2、OpenGL規范描述了繪制2D和3D圖形的抽象API。盡管這些API可以完全通過軟件實現,但它是為大部分或者全部使用硬件加速而設計的。
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.?*/ @Override public?void?onCreate(Bundle?savedInstanceState)?{undefined super.onCreate(savedInstanceState); //?requesting?to?turn?the?title?OFF requestWindowFeature(Window.FEATURE_NO_TITLE); //?making?it?full?screen getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); //?Initiate?the?Open?GL?view?and //?create?an?instance?with?this?activity glSurfaceView?=?new?GLSurfaceView(this); //?set?our?renderer?to?be?the?main?renderer?with //?the?current?activity?context glSurfaceView.setRenderer(new?GlRenderer()); setContentView(glSurfaceView); } /**?Remember?to?resume?the?glSurface?*/ @Override protected?void?onResume()?{undefined super.onResume(); glSurfaceView.onResume(); } /**?Also?pause?the?glSurface?*/ @Override protected?void?onPause()?{undefined super.onPause(); glSurfaceView.onPause(); } }
以上就是小編今天的分享了,希望可以幫助到大家。