Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > OPENGL:Экран в экране.


Автор: [ss]3L33T@ 6.12.2003, 15:41
Как мне конвертировать то, что видно на экране в текстуру?
Используя VC++ OPENGL...
На gamedev.ru описано, но для Delphi.
А ведь Delphi только для "качков".
smile.gif
Я не "качок" и вообще не люблю показывать свои мышцы, если вы поняли о чём я.
smile.gif

Автор: oleg1973 6.12.2003, 15:53
у так блин что есть техтура?
набор цветных точек некой размерности
ну так возьми да вырежи с бек буфера какой кусок тебе нада

Автор: [ss]3L33T@ 7.12.2003, 07:20
Ха!
Так и знал.
Никто ни черта не может сказать.
Книжные черви!
Только на книги ссылаться умеете!
2 oleg1973: дельно, надо попробовать.

Автор: <Spawn> 7.12.2003, 08:44
[ss]3L33T@ Если ты имеешь ввиду скрин окна, то попробуй это:

Код
void WindowToBMP(HWND wnd, AnsiString FileName)
{
 tagRECT *lpRect;
 HDC dc = GetWindowDC(wnd);
 Graphics::TBitmap* bmp = new Graphics::TBitmap;
 lpRect = new tagRECT;
 GetWindowRect(wnd, lpRect);
 bmp->Width = lpRect->right - lpRect->left;
 bmp->Height = lpRect->bottom - lpRect->top;
 BitBlt(bmp->Canvas->Handle, 0, 0, bmp->Width,
        bmp->Height, dc, 0, 0, SRCCOPY);
 bmp->SaveToFile(FileName);
 ReleaseDC(wnd, dc);
 delete lpRect;
 delete bmp;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 HWND wnd = FindWindow("Класс окна", NULL);
 if (IsWindow(wnd))
 {
   WindowToBMP(wnd, ExtractFilePath(ParamStr(0)) + "Test.bmp");
 }
}


Только если окно будет перекрыто другим, то и картинка соответственно будет такая. Если же хочется выпихнуть окно на передний план, то юзай SetForegroundWindow

Автор: oleg1973 7.12.2003, 18:46
void glReadPixels(
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
GLvoid *pixels
);

The glReadPixels function returns pixel data from the frame buffer

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)