From: ramey (ramey++at++de-solutions.com)
Date: 01/31/2000 10:02:03
Does anyone know how to get Intensity textures to work in performer?
I am going out of my mind as performer (as best I can tell) is useing a
GL_LUMINANCE texture here and this is NOT what I want. The image is
showing up right(it is simmply 255 or 0 based on whether something
should be drawn or not, but I want the 0s to be clear).
tex->setImage((uint*)m_image,1,128,128,0);
tex->setFormat(PFTEX_INTERNAL_FORMAT,PFTEX_I_8);
tex->setFormat(PFTEX_EXTERNAL_FORMAT,PFTEX_PACK_8);
tev->setMode(PFTE_MODULATE);
gState->setMode(PFSTATE_TRANSPARENCY,PF_ON);
gState->setMode(PFSTATE_ENTEXTURE,PF_ON);
gState->setMode(PFSTATE_ALPHAFUNC,PF_ON);
gState->setMode(PFSTATE_ALPHAFUNC,PFAF_GREATER);
gState->setVal(PFSTATE_ALPHAREF,0.5f);
gState->setAttr(PFSTATE_TEXTURE,tex);
gState->setAttr(PFSTATE_TEXENV,tev);
where image came from:
register int Idx;
register unsigned char bitmask;
for(int row=0;row<8;++row){
for(int letterRow=0;letterRow<13;++letterRow){
for(int col =0;col<12;++col){
bitmask = 128;
for(int bit=1;bit<9;++bit){ // bit will cause each letter to
be padded by one blank on each side
Idx = bit+col*10+letterRow*128+row*13*128;
if(rasters[row*12+col][letterRow] & bitmask) m_image[Idx]
= 255;
bitmask /=2;
}
}
}
}
GLubyte rasters[][13] = {
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}, // space
{0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0x18}, // !
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36,
0x36}, // "
ect
ect
ect
-- "Haven't you heard? We come in six packs now." -Zaphod Beeblebrox Larry E. Ramey ramey++at++de-solutions.com
This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 09:56:49 PST