Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 16:58   #1
Алексадр
 
Регистрация: 29.09.2009
Сообщений: 3
По умолчанию Opengl

После введение текста пользоватилем, текст должен двигатса вверх, вниз и вопще двигатса в любые стороны автоматически (как стандартная заставка WindowsXP). Также он должен крутитса и... Вопщем двигатса как ему угодно. Зарание говорю спасибо!
Алексадр вне форума Ответить с цитированием
Старый 29.09.2009, 17:00   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

наработки?
это на ГЛ надо?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.09.2009, 17:05   #3
Алексадр
 
Регистрация: 29.09.2009
Сообщений: 3
По умолчанию

меня интересует исходный код. код на Delphi
Алексадр вне форума Ответить с цитированием
Старый 29.09.2009, 17:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас наработки какиенить есть свои?
иль вам сразу все готовое подавай?
http://programmersforum.ru/rules.php
http://programmersforum.ru/showthread.php?t=34061
почитайте.

иначе во фриланс.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.09.2009, 17:23   #5
Алексадр
 
Регистрация: 29.09.2009
Сообщений: 3
По умолчанию

Вот пример программи. Только здесь текст не вводмтса пользовотилем. Вот:

program OutText;

uses
Windows, Messages, OpenGL;

const
AppName = 'GLFont';
GLF_START_LIST = 1000;
id_Timer = 100;
Litera : PChar = 'Олександр Рапатий';

var
Window : HWnd;
Message : TMsg;
WindowClass : TWndClass;
dc : HDC;
hrc : HGLRC;
ps : TPAINTSTRUCT;
gldAspect : GLdouble ;
glnWidth, glnHeight : GLsizei;
lf : TLOGFONT;
hFontNew, hOldFont : HFONT;
agmf : Array [0..255] of TGLYPHMETRICSFLOAT ;
// для Delphi 4 :
{agmf : Array [0..255] of GLYPHMETRICSFLOAT;}
AngY, AngX, AngZ : GLfloat;
radius : GLfloat;
maxObjectSize, aspect : GLfloat;
near_plane, far_plane : GLdouble;
lpMsgBuf: PChar;


{$I SetDCPixelFormat}


procedure DrawScene;
begin
glClear (GL_COLOR_BUFFER_BIT );
glLoadIdentity;
glTranslatef(0.0, 0.0, -radius);
glRotatef(AngX, 1.0, 0.0, 0.0);
glRotatef(AngY, 0.0, 1.0, 0.0);
glRotatef(AngZ, 0.0, 0.0, 1.0);
glScalef(0.3, 0.3, 0.3);
glListBase(GLF_START_LIST);
glCallLists(17, GL_UNSIGNED_BYTE, Litera);

glFlush;
end;

function WindowProc (Window : HWnd; Message, WParam : Word;
LParam : LongInt) : LongInt; export; stdcall;
Begin
WindowProc := 0;
case Message of
wm_Destroy :
begin
wglDeleteContext (hrc);
KillTimer(Window, id_Timer);
glDeleteLists(GLF_START_LIST, 256);
PostQuitMessage (0);
Exit;
end;
wm_Create:
begin
AngY := 5.0;
AngX := 1.0;
AngZ := 3.0;

near_plane := 2.0;
far_plane := -2.0;
maxObjectSize := 2.0;
radius := near_plane + maxObjectSize/2.0;

dc := GetDC (Window);
SetDCPixelFormat (dc);
hrc := wglCreateContext (dc);
wglMakeCurrent(dc, hrc);
glColor3f(0, 0, 1.0); // цвет рисования - синий

// подготовка вывода текста
FillChar(lf, SizeOf(lf), 0);
lf.lfHeight := -28 ;
lf.lfWeight := FW_NORMAL ;
lf.lfCharSet := ANSI_CHARSET ;
lf.lfOutPrecision := OUT_DEFAULT_PRECIS ;
lf.lfClipPrecision := CLIP_DEFAULT_PRECIS ;
lf.lfQuality := DEFAULT_QUALITY ;
lf.lfPitchAndFamily := FF_DONTCARE OR DEFAULT_PITCH;
lstrcpy (lf.lfFaceName, 'Arial') ;

hFontNew := CreateFontIndirect(lf);
hOldFont := SelectObject(DC,hFontNew);

wglUseFontOutlines(DC, 0, 255, GLF_START_LIST, 0.0, 0.15,
WGL_FONT_POLYGONS, @agmf);

DeleteObject(SelectObject(DC,hOldFo nt));
DeleteObject(SelectObject(DC,hFontN ew));
SetTimer (Window, id_Timer, 50, nil); // Установка таймера
end;
wm_Size:
begin
glnWidth := LoWord (lParam);
glnHeight := HiWord (lParam);
gldAspect := glnWidth / glnHeight;
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(40.0,gldAspect,1.0,4 .0);
glViewport(0, 0, glnWidth, glnHeight);
glMatrixMode (GL_MODELVIEW);
end;
wm_Timer:
begin
AngX := AngX + 3.0;
AngY := AngY + 3.0;
AngZ := AngZ + 1.0;
InvalidateRect(Window, nil, False);
end;
wm_Paint: DrawScene;
end; // case

WindowProc := DefWindowProc (Window, Message, WParam, LParam);
End;

Begin
With WindowClass do begin
Style := cs_HRedraw or cs_VRedraw;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := 0;
hCursor := LoadCursor (0, idc_Arrow);
lpszClassName := AppName;
end;
If RegisterClass (WindowClass) = 0 then Halt (255);
Window := CreateWindow (AppName, AppName,
ws_OverLappedWindow or ws_ClipChildren or ws_ClipSiBlings, // обязательно для OpenGL
cw_UseDefault, cw_UseDefault,
cw_UseDefault, cw_UseDefault,
HWND_DESKTOP, 0, HInstance, nil);
ShowWindow (Window, CmdShow);
UpdateWindow (Window);
While GetMessage (Message, 0, 0, 0) do begin
TranslateMessage (Message);
DispatchMessage (Message);
end;
Алексадр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
opengl alhon Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 10.10.2013 15:02
OpenGL Д'якон Компьютерное железо 5 31.01.2009 22:48
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43