成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全球首發(fā)—鴻蒙開源平臺OpenGL

開源
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com/#zz

[[382938]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

前言

基于安卓平臺的OpenGL(http://androidxref.com/9.0.0_r3/),實現(xiàn)功能的鴻蒙化遷移和重構(gòu),全球首發(fā)鴻蒙平臺的OpenGL-ISRC,代碼已經(jīng)開源到(https://gitee.com/iscas-ohos/OpenGL_ISRC/tree/main),歡迎各位下載使用并提出寶貴意見!

背景

OpenGL(Open Graphics Library)是用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口(API),可繪制從簡單的圖形到復雜的三維景象,操作在GPU之上,實現(xiàn)硬件加速渲染 。目前,Microsoft、SGI、IBM、DEC、SUN、HP等大公司都采用了OpenGL做為三維圖形標準,著名的動畫制作軟件Soft Image和3D Studio MAX、仿真軟件Open Inventor、VR軟件World Tool Kit、CAM軟件ProEngineer、GIS軟ARC/INFO等等都是以O(shè)penGL為基礎(chǔ)制作完成的。OpenGL是個與硬件無關(guān)的軟件接口,可以在不同的平臺之間移植。

OpenGLES是OpenGL的高性能版本,刪減了其中的低效能的操作方式,Android就是使用的這種標準,因此鴻蒙平臺的OpenGL-ISRC也是使用的這種標準。

鴻蒙OpenGL-ISRC的結(jié)構(gòu)


(1) Android的OpenGL庫


(2) Harmony的OpenGL-ISRC庫


(3)Harmony的OpenGL庫

圖1 :OpenGL庫對比

由圖1可知,OpenGL-ISRC整體的結(jié)構(gòu)和Android OpenGL類似,不同之處在于OpenGL-ISRC由兩個包組成,分別是android.opengl和ohos.opengl。android.opengl里放置的是目前支持版本的OpenGLES標準,ohos.opengl放置的是常用的圖像處理類。且類的數(shù)量少于Android的OpenGL。下面對這幾點給出解釋。

(1)為什么其中一個包名是android.opengl?

采用C++實現(xiàn)接口的方式,通過so庫的調(diào)用實現(xiàn)接口的調(diào)用。對于目前支持版本的OpenGLES標準這部分,Android已經(jīng)開源了其生成的so庫,為了避免功能重復開發(fā),此處直接使用Android的so庫,因此包名必須是android.opengl。

(2)OpenGL-ISRC為什么由兩個包組成?

對于圖像處理類的實現(xiàn),若繼續(xù)采用Android so庫調(diào)用的方式,需要將圖像處理類放置于android.opengl包下,此時運行鴻蒙環(huán)境,會出現(xiàn)方法聲明重復的錯誤,見圖2,表明圖像處理類中的方法與鴻蒙底層存在的某些方法存在沖突,因此繼續(xù)使用Android so庫調(diào)用的方式不再可行。


圖2:圖像處理類放置于android.opengl包下的報錯情況

在OpenGL-ISRC中,圖像處理類這一部分,依舊采用C++實現(xiàn)接口,通過so庫調(diào)用實現(xiàn)接口調(diào)用的方式。與android.opengl里的類不同的是,我們對圖像處理的類的接口進行了鴻蒙化的移植重構(gòu),生成了全新的so庫進行調(diào)用,適配了鴻蒙底層的環(huán)境,也避免了此處對安卓的依賴。

(3)OpenGL-ISRC為什么缺少EGL類?

鴻蒙SDK自帶OpenGL庫,見圖1.(3),內(nèi)部含有EGL類。OpenGL-ISRC是基于鴻蒙平臺,所以直接使用了鴻蒙SDK自帶OpenGL庫的EGL類,避免了功能的重復開發(fā)。

(4)OpenGL-ISRC中的GLSuefaceprovider

OpenGL-ISRC中的GLSuefaceProvider在功能上和Android的GLSurfaceView相同。因為鴻蒙中的SurfaceView命名為SuefaceProvider,根據(jù)命名一致原則,OpenGL-ISRC中的GLSurfaceView命名為GLSuefaceProvider。

OpenGL-ISRC和鴻蒙SDK OpenGL的區(qū)別

OpenGL-ISRC是鴻蒙開源系統(tǒng)的功能相對完整的OpenGL ES庫。從使用上來說,OpenGL-ISRC具有較大的獨立性,與鴻蒙SDK OpenGL在實現(xiàn)方式、完善程度、功能提供等方面都存在較大不同。

(1) OpenGL-ISRC采用C++實現(xiàn)接口,通過so庫調(diào)用實現(xiàn)接口調(diào)用的方式,而鴻蒙SDK OpenGL 的接口采用java實現(xiàn)的方式,二者的使用較為獨立,不存在沖突; (2)圖1.(2)和(3)的對比中可以看出,OpenGL-ISRC的所提供的功能是相對完善的,鴻蒙SDK OpenGL目前還缺少很多標準類,已存在的標準類內(nèi)部功能也有不完整的現(xiàn)象。

(3)OpenGL-ISRC封裝使用了鴻蒙SDK OpenGL的EGL類,避免功能重復開發(fā),因此二者是互相完善的關(guān)系;

(4)由于鴻蒙SDK OpenGL的不完整性,OpenGL-ISRC支持的OpenGLES標準類的實現(xiàn)使用了安卓so庫的調(diào)用,沒有使用鴻蒙SDK OpenGL的OpenGLES標準。

OpenGL-ISRC的使用

(1)GlSurfaceProvider的使用示例

此處創(chuàng)建了GlSurfaceProvider控件,add到layout中進行顯示,如圖3所示。為了增強GlSurfaceProvider的可視化效果,在GlRenderer里面設(shè)置了一個紅色的三角圖形(三角具體屬性見開源代碼:https://gitee.com/iscas-ohos/OpenGL_ISRC/tree/main),顯示效果如圖4所示。


圖3 GlSurfaceProvider的使用demo


圖4 GlSurfaceProvider顯示效果

(2)EGL和ETC1的使用示例

為了驗證了EGL的顯示效果,在initView()方法中給Viewport設(shè)置了紫色方塊視圖屬性(見開源代碼:https://gitee.com/iscas-ohos/OpenGL_ISRC/tree/main)。 為了驗證ETC1的有效性,將ETC1.getEncodedDataSize()的結(jié)果輸出到一個Text中進行顯示。 當EGL顯示紫色方塊,Text上顯示ETC1.getEncodedDataSize()的結(jié)果時,證明EGL和ETC1類可成功使用,二者的顯示效果如圖6所示。


圖5 EGL和ETC1的使用demo


圖6:EGL的顯示效果、ETC1的輸出效果

項目貢獻人:戴研 鄭森文 朱偉 陳美汝

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2009-03-26 16:54:47

LinuxNVIDIAOpenGL 3.1

2023-11-06 09:42:03

自動駕駛數(shù)據(jù)

2009-03-25 18:04:34

NVIDIAOpenGL 3.1Linux

2023-08-07 15:42:25

ArkUI-X鴻蒙

2012-02-22 14:42:13

2013-05-16 10:19:07

開源硬件Kiwiboard

2012-05-10 10:07:52

惠普新品首發(fā)

2017-11-21 16:11:27

存儲

2019-09-17 09:40:06

編譯器開源開發(fā)者

2010-09-25 15:18:09

2010-05-21 10:03:57

2014-09-01 17:02:14

海爾

2013-11-06 17:15:06

IBM高管調(diào)研

2014-05-09 15:28:21

360手機助手

2023-04-03 10:04:44

開源模型

2020-11-20 20:45:56

軟件開發(fā)

2014-08-27 12:22:51

浪潮VMworldEVO
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲天天| 综合久久av | 国产伊人久久久 | www.狠狠操 | 免费视频一区二区 | 国产精品区二区三区日本 | 亚洲国产成人精品女人 | 中文字幕一区二区三区精彩视频 | 精品久久久久久亚洲精品 | 日韩久久在线 | 久久精品亚洲欧美日韩久久 | 欧美中文字幕一区二区三区亚洲 | 日韩在线视频免费观看 | 精品在线一区二区三区 | 午夜精品一区二区三区三上悠亚 | 国产精品日日做人人爱 | 综合视频在线 | 一区二区三区在线播放 | 久久一区二区av | 国产一区视频在线 | 国产精品美女久久久免费 | 91在线精品一区二区 | 日日人人| 久久精品国产亚洲一区二区 | 欧美一区二区三区视频在线观看 | 精品国产一级 | 一区二区三区视频在线 | 日韩视频一区在线观看 | 亚洲国产小视频 | a毛片| 国产午夜精品福利 | 国产在线a | 在线成人www免费观看视频 | 亚洲精品免费看 | 欧美色999 | 精品中文字幕久久 | 欧美日韩亚洲三区 | 天天色天天射天天干 | 日韩欧美黄色 | 国产高清在线视频 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 |