![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что-то не так в исходничке, однако :-( [D6, WinXP]
Николай Быков © (2002-11-16 18:56:00)Вот заколебался я уже над ним и решил вам показать, может что-нибудь скажите.
unit uMainFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OpenGL;
type
TMainFrm = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainFrm: TMainFrm;
bmp:TBitmap;
cx,cy:integer;
arbmp:array [0..89,0..89]of BYTE;
dc:HDC;
hrc:HGLRC;
implementation
{$R *.dfm}
procedure TMainFrm.Button1Click(Sender: TObject);
var
i,j:integer;
begin
wglMakeCurrent(dc,hrc);
glViewPort(0,ClientHeight,ClientWidth,ClientHeight);
glPointSize(20);
bmp:=TBitmap.Create;
bmp.LoadFromFile("tank.bmp");
for i:=0 to bmp.Width-1 do
for j:=0 to bmp.Height-1 do
arbmp[i,j]:=bmp.canvas.pixels[i,j];
{
k (2002-11-18 15:25:00) [1]что-то с форматом цвета.. экспериментируй.
наконец еще попробуй RGB типа float - читай док по glDrawPixels
Николай Быков (2002-11-18 15:09:00) [2]
> k © (18.11.02 14:29)
Да пробовал
> Андрей Прокофьев © (18.11.02 14:15)
Да пробовал
ИМХО косяк не в этом, хотябы потому, что все-таки рисуется изображение, просто оно не такое, как надо. там рисуется вместо нормальной картинки черный квадрат с вкраплениями зеленого булого и еще всяких разных цветов
k (2002-11-18 14:29:00) [3]как насчет
glViewPort(0, 0,ClientWidth,ClientHeight);?
пробовал
glDrawPixels(90,90,GL_RGB,GL_BYTE,@arbmp);(90,90,GL_RGB, GL_INT,@arbmp);?
если используешь glDrawPixels(90,90,GL_RGB,GL_BYTE,@arbmp);, то неплхо бы задать начальную позицию при помощи glRasterPos
и ваще что конкретно не получается? что на экран выводится?
Андрей Прокофьев (2002-11-18 14:15:00) [4]>>glViewPort(0,ClientHeight,ClientWidth,ClientHeight);
glViewPort(0, 0,ClientWidth,ClientHeight);
Николай Быков (2002-11-18 14:11:00) [5]
> k © (18.11.02 13:13)
Ну пробовал я array[...] ofinteger (4 байта)
не помогает
k (2002-11-18 13:13:00) [6]
arbmp[i,j]//сюда надо присвоить байт
:=
bmp.canvas.pixels[i,j]; // а это возвращает значение TColor т.е 4байта
и не забудь битмап в концеprocedure TMainFrm.Button1Click(Sender: TObject);уничтожить
удачи
Николай Быков (2002-11-18 12:49:00) [7]Up
Николай Быков (2002-11-17 18:32:00) [8]
> Shadow © (17.11.02 18:25)
> Ты уверен, что именно в этом
Ну я и привел весь исходник на случай если не в это ошибка.
Ты лучше помоги, а не трепись просто так. это другой разлдел форума
Shadow (2002-11-17 18:25:00) [9]Ты уверен, что именно в этом месте ошибка?
Николай Быков (2002-11-17 18:19:00) [10]Ты про че?
Я говорю, что пробовал так и так, но ничего не получилось.
Спрашиваю что я не так делаю?
Shadow (2002-11-17 18:15:00) [11]Так какого хера запутался в строчках?!
Николай Быков (2002-11-17 17:36:00) [12]Нет! Не уверен, иначе бы не писал в этот форум
Shadow (2002-11-17 17:19:00) [13]>arbmp:array [0..89,0..89]of BYTE;
>glBitmap(90,90,0,0,100,00,@arbmp);
Ты уверен,что все правильно?
Николай Быков (2002-11-17 16:28:00) [14]АП
Николай Быков (2002-11-17 12:17:00) [15]UP.
Николай Быков (2002-11-17 11:47:00) [16]АП
Николай Быков (2002-11-17 10:39:00) [17]Хорошо. Если лень разбираться в исходнике, то просто ответьте на вопрос:
Как вывести изображение BitMap на форму средствами OpenGL
Я вот нашел в хелпе две процедуры (в исходнике написаны), но похоже я что-то не так делаю, потому вместо картинки выводится какая-то фигня
Николай Быков (2002-11-17 10:24:00) [18]{ВОТ ЗДЕСЬ КАКОЙ_ТО КОСЯК!!!!!!!!!!!!!!!}
glDrawPixels(90,90,GL_RGB,GL_BYTE,@arbmp);
glBitmap(90,90,0,0,100,00,@arbmp);
{А КАК ЕГО ИСПРАВИТЬ? Х... ЗНАЕТ!}
Viktor Kushnir (2002-11-17 08:59:00) [19]Офигенно, но нельзя ли повторить комментарии в тексте программы в виндовой кодировке?
Николай Быков (2002-11-17 05:39:00) [20]UP.