Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
8-11345
loon
2002-07-12 14:54
2002.11.04
AVI в ЕХЕ файле


4-11555
Ich Hasse
2002-09-21 19:57
2002.11.04
Как ЗАСТАВИТЬ окно перерисоваться???


14-11421
Николай Быков
2002-10-13 19:42
2002.11.04
Скажите мне в лицо: кем вы меня считаете?


8-11344
Карлсон
2002-07-11 22:40
2002.11.04
Почему не получается использовать два таймера?


3-11118
mer
2002-10-16 12:00
2002.11.04
Как организовать хранени в базе документов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский