Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизКак распечатать картинку созданную в OpenGl Найти похожие ветки
← →
Sis3 (2005-04-06 20:06) [0]Как распечатать картинку созданную в OpenGl
← →
П7 (2005-04-06 20:21) [1]На принтере.
← →
dRake © (2005-04-06 21:14) [2]Посмотри компонент на torry.net =)
← →
Pa5ha (2005-04-07 01:34) [3]dRake, а если я VCL отключил? И забудте Вы про компоненты. Кодеры, блин.
← →
dRake © (2005-04-07 02:25) [4]Pa5ha - это у нас чорный юмор такой =)
Каков вопрос - таков и ответ
← →
Sis3 (2005-04-07 08:16) [5]Вообще-то я серьезно спрашивал. Когда я использую Form.Paint, то печатаются только компоненты, расположенные на форме(кнопки и т.д.), но не картинка. Наверно нужно сначала перевести ее в BMP, а потом печатать. Но как это сделать?
← →
dRake © (2005-04-07 11:28) [6]Ну раз серьезно - залочь FrountBuffer и скопируй пикслели в TBitmap или посмотри аналог D3D функции GetFrontBufferData() (в D3D нельзя лочить фронтбуффер, поэтому приходится сначала скопировать его на другую пов-ть, а потом лочить уже ее...)
← →
Pa5ha (2005-04-07 12:20) [7]dRake, зато BACK буффер лочить можно. Я после флипа с него картинку и утягивал :D
← →
ancara © (2005-04-07 12:58) [8]Какой лочить, вы о чем?
OpenGL прекрасно рендерит на битмапы, причем эти битмапы не только потом печатать можно , но и превращать в текстуры и обратно в сцену пихать, на объекты натягивать.
При инициализации OpenGL:var
pfd: TPixelFormatDescriptor;
...
begin
with pfd do begin
dwFlags := PFD_DRAW_TO_BITMAP or
PFD_SUPPORT_OPENGL;
cColorBits := 24;
...
end;
nPixelFormat := ChoosePixelFormat(BmpDC, @pfd);
SetPixelFormat(BmpDC, nPixelFormat, @pfd);
end;
где BmpDC - BmpDC:=Bitmap.Canvas.Handle;
тока надо следить чтобы PixelFormat совпадал с pfd.cColorBits ну и за размерами само сабой....
← →
XProger © (2005-04-07 20:49) [9]Зачем в битмэп?
Берём все пиксели изображения glReadPixels.
uses
Printers;
...
var
Printer : TPrinter;
r : TRect;
i : Integer;
begin
with Printer do
begin
r := Rect(0, 0, W, H);
BeginDoc;
StretchDIBits(Canvas.Handle, 0, 0, W, H,
0, 0, W, H,
pix, BitInfo,
DIB_RGB_COLORS, SRCCOPY);
Canvas.FrameRect(r);
EndDoc;
end;
end;
Ну вот собсна всё... ;)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.089 c