cocos2d x 獲取紋理資料

2022-02-22 15:37:07 字數 1142 閱讀 6635

s = sprite::create("res/gire.png");

s->setposition(visiblesize / 2);

this->addchild(s);

auto id = s->gettexture()->getname();

//int format,width,height;

glgettexlevelparameteriv(gl_texture_2d, 0, gl_texture_internal_format, &format);

glgettexlevelparameteriv(gl_texture_2d, 0, gl_texture_width, &width);

glgettexlevelparameteriv(gl_texture_2d, 0, gl_texture_height, &height);

//glgetteximage(gl_texture_2d, 0, format, gl_unsigned_byte, void*);

//這是不現實的

雖然我有解決方案但不建議用

因為 ndk 中沒有glgetteximage 函式

僅限於windows...

//小編典典

es 2.0中沒有。實際上不存在該功能真讓人感到驚訝。您可以獲取渲染緩衝區的大小,但不能獲取紋理的大小,這似乎是不一致的。

唯一可用的是您可以通過獲取的值glgettexparameteriv(),即紋理的filterwrap引數。

es 3.0也沒有。僅在es 3.1

glgettexlevelparameteriv()中新增了它,使您可以訪問要查詢的所有值。例如,獲取當前繫結紋理的寬度和高度:

int texdims = new int[2];

gles31.glgettexlevelparameteriv(gles31.gl_texture_2d, 0, gl_texture_width, texdims, 0);

gles31.glgettexlevelparameteriv(gles31.gl_texture_2d, 0, gl_texture_height, texdims, 1);

cocos2dx 紋理快取

快取 cache 機制的原理是什麼?把新加進記憶體的資源做乙個hashmap儲存,每乙個資源加乙個key。每次載入資源,先從快取中尋找,如果找到就直接返回,否則載入到記憶體後再返回。一 自動快取紋理 直接使用display.newsprite filename 建立精靈,引擎內部會自動把紋理載入到快...

cocos2dx 紋理快取

在遊戲中需要載入大量的紋理,這些操作都是很耗記憶體和資源的。當遊戲中有個介面用到的非常多,第一次點進這介面時速度非常慢 因為要載入繪製很多 出現卡頓,我們可以使用texturecache提前非同步載入紋理,等載入結束,進入到這個介面再使用這些速度就會非常快。texture2d 紋理,即加載入記憶體後...

cocos2d x 紋理畫素格式

紋理的畫素格式是影象儲存在gpu記憶體的方式。你可能會見到以下畫素格式 紅色通道 綠色通道 藍色通道和alpha 通道各8位。如果想獲得最好的質量,使用這種格式是很靠譜的。但它會占用的記憶體會比16位的紋理多一倍,在iphone上記憶體是很寶貴的資源,這個 自然的,它的運算速度也是相對較慢的。常用的...