http://www.play21.jp/board/formz.cgi?ac ... &rln=57585
質問ばかりで申し訳ないのですが
もう一度アドバイスを頂けますと助かります。
現在iPhoneアプリをOpenGL ESにて開発しております。
UV座標系が複雑なのでスクリーン座標でも開発できるライブラリを作ろうとしております。
そこで描画の関数を作っておりどうしても読み込んだテクスチャの画像を取得する必要が出てきました。
色々と調べてみたのですがObjective-cで書かれたものは
見つけたのですがCよりで書かれたものを見つけることができませんでした。
下記のソースは引数の座標の中心に描画するというものです。
ソースでは画像を512と仮定しておりますが
ここをGLuint textureから取得して読み込むような仕様にしたいです。
どのようにすればよいのか教えては頂けないでしょうか。
void DrawTexture( int x, int y, GLuint texture, int red, int green, int blue, int alpha ){
int width = 512;
int height = 512;
int w = width / 2;
int h = height / 2;
//長方形を構成する四つの頂点の座標を決定します
const GLfloat squareVertices[/url] = {
x-w, y-h,
x+w, y-h,
x-w, y+h,
x+w, y+h,
};
//長方形を構成する四つの頂点の色を指定します
//ここではすべての頂点を同じ色にしています
const GLubyte squareColors[/url] = {
red, green, blue ,alpha,
red, green, blue ,alpha,
red, green, blue ,alpha,
red, green, blue ,alpha,
};
//元画像のどの範囲を描画に使うかを決定します
const GLfloat texCoords[/url] = {
0.0f, 0.0f,
0.0f+1.0f, 0.0f,
0.0f, 0.0f+1.0f,
0.0f+1.0f, 0.0f+1.0f,
};
//テクスチャ機能を有効にし、描画に使用するテクスチャを指定します
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture);
//頂点座標と色、およびテクスチャの範囲を指定し、描画します
glVertexPointer(2, GL_FLOAT, 0, squareVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);
glEnableClientState(GL_COLOR_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
//テクスチャ機能を無効にします
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);
}