Hello,
I created program whitch take image(.tga format) and write each pixel to txt file with:
glGetTexImage(GL_TEXTURE_2D,0,GL_RGBA,GL_UNSIGNED_BYTE,(char*)pixel);
Next program read pixels by two. For example 4b4f05ff int txt RGBA. I convert numbers from hexdecimal to decimal and write it to the array.
R=4b
G=4f
B=f0
A=ff
There is code:
string line="";
short int decimal;
ifstream myfile ("example.txt");
unsigned long int color=0;
for(int a=0;a<h;a++){
for(int b=0;b<w;color+=4,b++)
for(int i=0;i<4;i++){
line+= myfile.get();
line+= myfile.get();
stringstream hexadecimal;
hexadecimal<<std::hex<<line;
hexadecimal>>decimal;
line="";
if(i==0) pole[color]=decimal;
else if(i==1) pole[color+1]=decimal;
else if(i==2) pole[color+2]=decimal;
else if(i==3) pole[color+3]=decimal;
}
}
Then use glTexImage2D but on screen is a mess of pixels. It do not show texture I saved as txt. Can u pls help where is problem?Maybe I do it wrong way.
There is creating the texture.
GLuint LTex;
glGenTextures(1,<ex);
glBindTexture(GL_TEXTURE_2D,LTex);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,w,h,0,GL_RGBA,GL_UNSIGNED_BYTE,pole);
Many thanks for answer, Andy.