Jump to content

  • Log In with Google      Sign In   
  • Create Account

GDI bmp to texture


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 outRider   Members   -  Reputation: 852

Like
Likes
Like

Posted 02 August 2001 - 05:06 PM

What I''m trying to do is draw the 224 or so printable font characters onto a GDI bitmap and then take those and be able to create a texture out of the bitmap to draw on quads for text output. Now, I''ve never done ANYTHING with the GDI before, so I''m a little unsure about how to do that, or what functions to use. If someone could outline the steps needed, I''d appreciate it. ------------ - outRider -

Sponsor:

#2 core114   Members   -  Reputation: 122

Like
Likes
Like

Posted 03 August 2001 - 12:43 PM

if you have a hdc and a bitmap you can draw to the hdc and the stuff should end up on the bitmap...

use
CreateDIBSection
to make the DIB
then use
SelectObject(your_hdc, your_bitmap);
to select the bitmap for the hdc

then do whatever you want to the image

then call
GdiFlush
to finish up any waiting gdi stuff
then use the bits from the bitmap to update a existing opengl texture, with
glTexSubImage2D

that should be in the right direction for something to work

#3 outRider   Members   -  Reputation: 852

Like
Likes
Like

Posted 04 August 2001 - 02:59 PM

Here's what I have so far...

I created a font, then a bitmap based on the font's width and height. I was thinking that the bitmap would be 16 rows x 14 columns. Anyhow, I'm unclear about what to do next. Should I create a display list for every character and have each character textured on its own quad? I'm assuming that the raw image data is pointed to by pData, as that was the impression I got from the Platform SDK documentation. If anyone sees any problems with what I have so far I'd appreciate any tips you could offer.


short Font;
short FontDL;
HFONT hFont;
TEXTMETRIC tm;
HBITMAP hBmp;
BITMAPINFO BmpInfo;
BYTE *pData;
BYTE i, ii;
RECT Rect;
char CurrentChar = 32;


hFont = CreateFont(-byHeight, 0, 0, 0, FW_NORMAL, false, false, false, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, FF_DONTCARE | DEFAULT_PITCH, pszFontname);
SelectObject(hDC, hFont);
GetTextMetrics(hDC, &tm);


memset(&BmpInfo, 0, sizeof(BITMAPINFO));
BmpInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
BmpInfo.bmiHeader.biWidth = 16 * tm.tmMaxCharWidth;
BmpInfo.bmiHeader.biHeight = 14 * tm.tmHeight;
BmpInfo.bmiHeader.biBitCount = 24;
BmpInfo.bmiHeader.biPlanes = 1;
BmpInfo.bmiHeader.biCompression = BI_RGB;
BmpInfo.bmiHeader.biSizeImage = BI_RGB;


hBmp = CreateDIBSection(hDC, &BmpInfo, DIB_RGB_COLORS, pData, NULL, NULL);
SelectObject(hDC, hBmp);

Rect.left = 0;
Rect.right = BmpInfo.bmiHeader.biWidth;
Rect.top = 0;
Rect.bottom = BmpInfo.bmiHeader.biHeight;


for (i = 0; i > 14; i++)
{
for (ii = 0; ii > 16; ii++)
{
DrawText(hDC, CurrentChar, 1, &Rect, DT_LEFT);
}

}


FontDL = glGenLists(192);


------------
- outRider -

Edited by - outRider on August 4, 2001 10:01:06 PM




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS