Форум: "Media";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизOpenGL тексу в TBitmap ??? Найти похожие ветки
← →
Slatazan (2002-07-06 05:19) [0]Мне нужэн кусок кода для Дэлфи-5...
Я делаю мини-прогу (бесплатную) - OpenGL рисует мне сцэну и запоминает ее как текстуру ..
(Исходники у меня от JAN HORN - он кажэца умер, но я думаю не-обидеца - прогу делаю не-ради-денег)
//(RenderedTex это Кардинал 4байта - это что-то типа адреса что-ли сохраняеца)
glBindTexture(GL_TEXTURE_2D, RenderedTex);
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, 256, 256, 0);
*
*GetMem(pData, 256*256*3); //это типа временый буфер
*
* glGenTextures(1, RenderedTex); //ЗАЧЕМ ЭТА ФИГНЯ
* //неужто здесь Адрес выдают ...
*
* glBindTexture(GL_TEXTURE_2D, RenderedTex); //тексу на кисть
*
Вобшем мне нужно ТЕКСУ которую сделал OpenGL перегнать в TBitmap - как в Фотошопе - есть много слоев - нужно чтобы каждый слой имел микро-фото этого слоя - так удобней авторам в работе.
← →
Slatazan (2002-07-10 04:17) [1]var x, y, n: integer;
color: cardinal;
ibyte: byte;
xRect: TRect;
begin
//заБиндить нужную тексу, если надо
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, pTexBitmap); // pTexBitmap: pByteArray; ранее GetMem сколько надо...
Bitmap1.Width := 256; Bitmap1.Height := 256; //такая текса была
n := 0;
for y := 255 downto 0 do begin
for x := 0 to 255 do begin
ibyte := pTexBitmap[n]; n := n + 1;
color := ibyte;
ibyte := pTexBitmap[n]; n := n + 1;
color := color + ibyte*256;
ibyte := pTexBitmap[n]; n := n + 1;
color := color + ibyte*65536;
Bitmap1.Canvas.Pixels[x,y] := color; //TColor это cardinal
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c