第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在 JOGL 中靜態(tài)使用 GL 對象?

如何在 JOGL 中靜態(tài)使用 GL 對象?

嗶嗶one 2023-03-02 15:53:47
我正在嘗試使用 JOGL 制作一個(gè)簡單的游戲引擎。但是我不想使用 EventListener 類,而是像在 LWJGL 中那樣創(chuàng)建一個(gè)靜態(tài)對象。不,我不使用 LWJGL,因?yàn)槲矣龅搅撕芏嗦闊?。這是我的事件監(jiān)聽器:class EventListener implements GLEventListener {    public static GL2 gl;    @Override    public void display(GLAutoDrawable drawable) {        gl = drawable.getGL().getGL2();        gl.glClear(GL.GL_COLOR_BUFFER_BIT);        gl.glClearColor(0, 1, 0, 1);    }    @Override    public void dispose(GLAutoDrawable drawable) {    }    @Override    public void init(GLAutoDrawable drawable) {    }    @Override    public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {    }}在主類中,它清除了一個(gè)綠屏,因此它可以完美地工作。但是,如果我嘗試在其他類中使用“gl”對象,它什么也不做。提前致謝!
查看完整描述

1 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

實(shí)際上,這是個(gè)壞主意。您不能將 GL 實(shí)例存儲到字段中,因?yàn)樗苋菀壮鲥e(cuò),原因有以下幾個(gè):

  • GL 實(shí)例隨時(shí)可能失效

  • 您可以在 OpenGL 上下文不是當(dāng)前的線程上訪問它

  • 您可以在 OpenGL 上下文已成為當(dāng)前線程的線程上訪問它,但有時(shí)它不是當(dāng)前的(在釋放上下文之后)

這就是您應(yīng)該使用 GLEventListener 的原因。否則,您可以通過調(diào)用GLContext.getCurrentGL()獲取有效的 GL 實(shí)例,但如果沒有當(dāng)前上下文,它會拋出 GLException。您也可以使用GLAutoDrawable.invoke(),它允許在正確的時(shí)間在正確的線程上運(yùn)行您的代碼,但 GLEventListener 更有用,因?yàn)槟梢栽诔跏蓟瘯r(shí)執(zhí)行一些代碼。

順便說一下,JOGL 的具體問題應(yīng)該在官方 JogAmp 論壇上而不是在這里提問。StackOverflow 是解決一般 OpenGL 問題的好地方,但大多數(shù) JogAmp 貢獻(xiàn)者從來沒有來過這里。是的,StackOverflow 不是靈丹妙藥。

PS:如果你想了解JOGL的設(shè)計(jì)選擇,尤其是實(shí)例設(shè)計(jì),我建議你閱讀這篇文章評論。


查看完整回答
反對 回復(fù) 2023-03-02
  • 1 回答
  • 0 關(guān)注
  • 80 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號