如果原來紋理id對應的視訊記憶體有資料,則刪掉,並在視訊記憶體中重新建立紋理。如果沒有,直接建立紋理
void glteximage2d (glenum target, glint level, glint internalformat, glsizei width, glsizei height, glint border, glenum format, glenum type, const void *pixels);
區域性更新原來的紋理視訊記憶體。
void gltexsubimage2d (glenum target, glint level, glint xoffset, glint yoffset, glsizei width, glsizei height, glenum format, glenum type, const void *pixels);
如下圖把黑色區域中一部分更新成紅色
建立更新
//頂點資料
struct vertex
;//紋理id
gluint _texture;
static fibitmap*
readimage
(const
char
* filename)
//2 載入
fibitmap *dib =
freeimage_load
(fifmt, filename,0)
; free_image_color_type type =
freeimage_getcolortype
(dib)
;//! 獲取資料指標
fibitmap* temp = dib;
dib =
freeimage_convertto32bits
(dib)
;freeimage_unload
(temp)
; byte* pixels =
(byte*
)freeimage_getbits
(dib)
;int width =
freeimage_getwidth
(dib)
;int height =
freeimage_getheight
(dib)
;for
(int i =
0; i < width * height *
4; i+=4
)return dib;
}static
void
oninit()
}
渲染
// 繪製
static
void
render
(glfwwindow * window),,
,,};
glmatrixmode
(gl_modelview)
;glbindtexture
(gl_texture_2d, _texture)
;glenable
(gl_depth_test)
;glenable
(gl_texture_2d)
;glenableclientstate
(gl_vertex_array)
;glenableclientstate
(gl_texture_coord_array)
;glvertexpointer(3
, gl_float,
sizeof
(vertex)
,&cubevertices[0]
.x);
gltexcoordpointer(2
, gl_float,
sizeof
(vertex)
,&cubevertices[0]
.u);
// 清成單位矩陣
glloadidentity()
;// 產生乙個矩陣
python 學習筆記(二十三)
coding utf8 author liwei import re python正則的應用,math方法判斷正則是否匹配成功 print 正則簡單用例 text hello liwei is 25 if re.match r w s w s w s d text print ok else pri...
php學習筆記(二十三)建立cookie
關於cookie有一點很重要,它必須在傳送其他任何資訊之前從伺服器傳送到客戶端,也就是說,指令碼應該在print語句之前,或者引入任何包含html的外部檔案之前傳送cookie,如果伺服器嘗試在web瀏覽器已經獲得了html 之後發生cookie,甚至空格,都會產生錯誤資訊,cookie傳送也將失敗...
c語言學習筆記二十三
指標 佔4個位元組的儲存空間 概念把乙個變數所在的記憶體單元儲存在另乙個記憶體單元中,儲存單元的這個位址就是指標 示例 int i int pi i 指標的重新賦值 pi j 改變指標所指向的整型變數的值 pi pi 10 指標初始化另乙個指標 兩指標必須為同一型別 int ptri ptri pi...