Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Вниз

Разработка GUI   Найти похожие ветки 

 
Nic ©   (2006-09-18 23:26) [0]

Задача: сделать текст с картинками и скроллингом всего этого (OGL или на D3D). Что-то не пойму, с чего начать. Может есть у кого статьи по сабжу? Буду заранее благодарен.


 
XProger ©   (2006-09-18 23:29) [1]

Начать с загрузки текстур.
В чём проблема?


 
cyborg ©   (2006-09-19 06:56) [2]

Генеришь шрифт фонтбуилдером :)
Грузишь текстуру и координаты из файлов.
Пишешь функцию для создания вершин букв с форматированием и переносом, в ней расчитываешь ширину и высоту всего текста и ширину и высоту видимого окна с текстом. Если с картинками, то ищешь в тексте теги картинок, расчитываешь ширину и высоту вместе с текстом, создаёшь вершины картинки, можно в отдельный блок данных вершин, чтобы сначала текст рисовать, потом меняем текстуру и выодим картинки.

Для скроллинга можно менять смещение, либо изменять координаты вершин текста.

У меня сделан вывод текста с прокруткой с изменением координат вершин, перенос по словам, с тегом цветным выделением текста, вывод в ограниченном или неограниченном окне.

Кода достаточно много :)


 
cyborg ©   (2006-09-19 07:14) [3]

Вот тут можно на такой текст посмотреть
http://cyborghome.ru/download/temp/3DEngine.zip
410 кило
текст прокручивается клавишами Home и End
без исходников :)
Делал уже давно, пока забросил.
В PAS\init.pas можно полноэкранный режим включить.

В TEXT\test.txt можешь свой текст написать символы [ и ] выделяют текст.

Для работы нужен d3dx9_30.dll, он в обновлениях директх есть.


 
Cash ©   (2006-09-19 08:21) [4]

Nic ©   (18.09.06 23:26) :
Мой GUI один в один повторяет GUI Windows, сделано легко, на Direct3D,
с обработкой сообщений и всякой такой мудью. Сделал полный набор
контролов за два дня (само ядро еще за один) и теперь наслаждаюсь.

Если нада, по мылу, могу пояснить некоторые аспекты разработки.
(Без разницы, OpenGL или Direct3D)

cyborg ©   (19.09.06 07:14) [3]:
> d3dx9_30.dll
А такая есть??? я на Clootie не видел.


 
cyborg ©   (2006-09-19 08:37) [5]

> [4] Cash ©   (19.09.06 08:21)
> > d3dx9_30.dll
> А такая есть??? я на Clootie не видел.

Я, вроде, как раз её оттуда и заливал. Вообще она с апрельским обновлением директХ ставится.


 
cyborg ©   (2006-09-19 08:49) [6]

> [4] Cash ©   (19.09.06 08:21)
> Мой GUI один в один повторяет GUI Windows

Выложи файл посмотреть.


 
Cash ©   (2006-09-19 10:04) [7]

cyborg ©   (19.09.06 08:49) [6]:
Лови!
(гы гы гы, когда говорил "один в один", имел ввиду функциональность,
а не кры-са-ту, хотя и ее тоже реализовать с лихвой можно) :)))
Она требует D3DX9_29.dll, эта по моему самая последняя, которую clootie
выложил.
http://webfile.ru/1112352

Я сейчас шейдеры для двига клепаю, зверская штука получится! :)
Про тулзу (та, что на показ) не спрашивать, это ваще тест.

ЗЫ: загляни в "Настройки->Вкл. HW Инфо" :)


 
cyborg ©   (2006-09-19 10:15) [8]

Неплохо, но хотябы в о программе какую нибудь инфу выводил чтоли, а-то мёртвый интерфейс кажется, изменение языка только работает.


 
cyborg ©   (2006-09-19 10:17) [9]

> ЗЫ: загляни в "Настройки->Вкл. HW Инфо" :)

А, просмотрел, работает значит :)

Инфа о фичах процессора не влазит в окно, перенос текста сделай чтоли.


 
Cash ©   (2006-09-19 10:32) [10]

cyborg ©   (19.09.06 10:17) [9]:
Гы, а у тебя атлоша стоит чтоли? 8) (камень)
Я на них просто еще не тестил, толком и не знаю как оно себя кажит.
С текстом проблем нет? видюшка NVidia?


 
Cash ©   (2006-09-19 10:46) [11]

А, не, понял, у меня там просто проверка размеров лажовая, уже поправил. :)
(там само окошко, после его заполнения должно выравнивание сделать,
дак я вместо ветвления сделал линейную проверку, и усё! там все и так
видно, строка разрешения болше строки полного экрана, там проверка
и кончается)


 
cyborg ©   (2006-09-19 10:59) [12]

> [10] Cash ©   (19.09.06 10:32)

Да, атолн 64 и фич много :), видео гф6600
Глюк - тянем это окошечко с инфой влево вверх за пределы окна и опаля, оно справа снизу рисуется. Проверку на отрицательные значения сделай.


 
Cash ©   (2006-09-19 11:06) [13]

cyborg ©   (19.09.06 10:59) [12]:
Объявляю первого тестера и награждаю его почетной грамотой! Спасибо.
Малость неверное преобразование типов (SmallInt->Word) сделало свое дело. :)
+Fixed! Спасибо еще раз!


 
cyborg ©   (2006-09-19 11:09) [14]

> SmallInt->Word

Сейчас не те времена, чтобы из за двух байт жаться. Лонгинт - наше настоящее, и инт64 наше будущее. :)


 
Cash ©   (2006-09-19 11:10) [15]

По закону жанра окно я сделал так, чтобы оно не вылезало за пределы
экрана. Потом сменил тип координат с Word на SmallInt (важно, что 2 байта),
а о приведении типов в сообщениях забыл. Вот такой я я склеротик. :)

Кста, там в заголовке окна есть кнопочка [*] очень интересная, я такую
в KDE оболочке и в GUI EVE-Onilne видел, понравилась, вот и реализовал.


 
cyborg ©   (2006-09-19 11:17) [16]

> Кста, там в заголовке окна есть кнопочка [*] очень интересная,

Да я уже оценил, прикрепить окно :)


 
Cash ©   (2006-09-19 12:35) [17]

Вон, освеженный бинарник (только бинарка) с этими багофиксами.
http://webfile.ru/1112578

Чего то Nic не отвечает...

Вот с закреплением окон, в KDE содержимое окна становится полупрозрачным,
а в EVE-Online оно выще не отрисовывается.
Вот и думаю, мож действительно при закреплении убирать с экрана
содержимое окна... Хотя эффект с полупрозрачностью тоже интересно
сделать.
А сквозь такое прозрачное окошко можно работать с остальным интерфейсом.


 
Nic ©   (2006-09-19 12:49) [18]

Не ожидал такой быстрой реакции :) В принципе, реализуемо. Просто никогда не делал, а тут надо за короткий срок на незнакомом языке программирования на незнакомом АПИ. Вот и спросил, мож у кого исходник или статья.


 
Nic ©   (2006-09-19 13:07) [19]

Мне нужно только текст, картинки. кнопочки. Прорисовка окон не требуеттся. За пару неделек с полного нуля что-то работающее реально сделать? Если ни с D3D ни с C++ никогда не работал серьёзно. Купил книгу Франка Д. Луны "Введение в программирование DirectX 9.0" + книгу по C++, рекомендованную министерством образования РФ для ВУЗов. Опыт в графике имеется (OGL) и в программировании тоже, но только на Delphi. Если у кого есть простые примеры, чтоб можно было посмотреть - намыльте плиз :)


 
cyborg ©   (2006-09-19 13:23) [20]

Вот разбирайся, не знаю достаточно вырезал или чего забыл.

CONST
 PVB_FVFSprite1 = D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_TEX1;
TYPE
 PCustomSpriteVertex1 = ^TCustomSpriteVertex1;
 TCustomSpriteVertex1 = packed record
   x, y, z    : Single;
   RHW        : Single;
   Color      : DWORD;
   tu, tv     : Single;
 end;

 p3DSpriteRect1 = ^t3DSpriteRect1;
 t3DSpriteRect1 = array[0..5] of TCustomSpriteVertex1;

 P3DFont = ^T3DFont;
 T3DFont = packed record
   CharsInfo : TCharSizeArr;
   Texture   : IDirect3DTexture9;  //Указатель на интерфейс текстуры
 end;

 P3DString = ^T3DString;
 T3DString = packed record
   Font               : P3DFont;
   Text               : AnsiString;
   dX,dY              : Longint;            //Первоначальные координаты текста (пригодится для сброса изменений координат текста)
   W,H                : Longint;            //Ширина и высота текста
   TextLength         : Longint;

   Rectangled         : LongBool;
   Rect               : TRect;

   VFV                : Cardinal;           //Формат вершин
   BytesPerVertex     : Cardinal;           //Кол-во байт на вертекс

   VertexBuffer       : Pointer;            //Указатель на буфер вертексов
   VertexBufferSize   : Cardinal;           //Размер данных буфера вертексов
   IndexBuffer        : Pointer;            //Указатель на буфер индексов
   IndexBufferSize    : Cardinal;           //Размер буфера индексов
   IndexDataFormat    : _D3DFormat;         //Формат индексов
   VertexCount        : Cardinal;           //Кол-во вертексов
   FacesCount         : Cardinal;           //Кол-во треугольников
 end;


 
cyborg ©   (2006-09-19 13:24) [21]


Procedure FreeFont(var Font : T3DFont);
begin
 FreeTexture(Font.Texture);
 FillChar(Font,SizeOf(T3DFont),$00);
end;

Procedure LoadFont(var Font : T3DFont; FileName : PChar; ColorKey : Cardinal = $FF000000);
Var
 F : File;
begin
 if (not FileExists(FileName)) or (not FileExists(FileName+".crd")) then Exit;
 FreeFont(Font);
 LoadTexture(Font.Texture, FileName, ColorKey);
 FileMode:=0 ; //Режим окрытия файла ТОЛЬКО ЧТЕНИЕ
 AssignFile(F,FileName+".crd");
 Reset(F,1);
 BlockRead(F,Font.CharsInfo,SizeOf(Font.CharsInfo));
 CloseFile(F);
 FileMode:=2; //Режим окрытия файла ЧТЕНИЕ/ЗАПИСЬ
end;

Procedure FreeString(var Str : P3DString; Clear : Longbool = false);
begin
 if Str=nil then Exit;
 With Str^ do
 begin
   Text:="";
   if (VertexBuffer<>nil) and (VertexBufferSize>0) then FreeMem(VertexBuffer,VertexBufferSize);
   if (IndexBuffer<>nil) and (IndexBufferSize>0) then FreeMem(IndexBuffer,IndexBufferSize);
 end;
 if Clear then FillChar(Str^,SizeOf(T3DString),$00) else
 begin
   FreeMem(Str,SizeOf(T3DString));
   Str:=nil;
 end;
end;


 
cyborg ©   (2006-09-19 13:24) [22]


Procedure InitString(X,Y : Longint; var Str : P3DString; var Font : T3DFont; const S : ansistring; Rectangled : LongBool; RectW,RectH : Longint; ColorUp,ColorDown,SelColorUp,SelColorDown : Cardinal; StrInterval : Longint = 0 );
Var
 L,L2 : Longint;
 tX,tY : Longint;
 p : Pointer;
 i : Longint;
 ch : byte;

 SubstrLength : Longint;
 CurPos : Longint;

 Selected : LongBool;
begin
 //Оптимизированная функция, неиспользуемые символы не занимают драгоценные вертексы :)

 //S у нас PChar, поэтому символы идут с нуля, а не с единицы! :)
 L:=Length(S);
 if (Font.Texture=nil) or (L<=0) then Exit;
 FreeString(Str, true);
 if Str=nil then
 begin
   GetMem(Str,SizeOf(T3DString));
   FillChar(Str^,SizeOf(T3DString),$00);
 end else
 begin
   //Если изменяем существующий текст, то удаляем старые вертексы и индексы:
   if Str^.VertexBuffer<>nil then
   begin
     FreeMem(Str^.VertexBuffer,Str^.VertexBufferSize);
     Str^.VertexBuffer:=nil;
   end;
   if Str^.IndexBuffer<>nil then
   begin
     FreeMem(Str^.IndexBuffer,Str^.IndexBufferSize);
     Str^.IndexBuffer:=nil;
   end;
 end;
 Str^.Font:=@Font;
 Str^.Rectangled:=Rectangled;
 Selected := false;

 L2:=0;
 for i:=1 to L do
 begin
   ch:=byte(S[i]);
   if (ch>32) and (ch<>91) and (ch<>93) then Inc(L2);
 end;

 With Str^ do
 begin
   dX:=X;
   dY:=Y;
   TextLength:=L2;
   //Прямоугольник отсечения:
   Rect.Left:=X;
   Rect.Top:=Y;
   Rect.Right:=X+RectW;
   Rect.Bottom:=Y+RectH;

   VFV:=PVB_FVFSprite1;
   BytesPerVertex:=SizeOf(TCustomSpriteVertex1);
   Text:=S;
   VertexCount:=L2*4; //кол-во точек
   FacesCount:=L2*2; //кол-во треугольников

   VertexBufferSize:=VertexCount*BytesPerVertex;
   GetMem(VertexBuffer,VertexBufferSize);
   IndexBufferSize:=FacesCount*(3*2);
   GetMem(IndexBuffer,IndexBufferSize);
   IndexDataFormat:=D3DFMT_INDEX16;
//Очистка данных:
   FillChar(VertexBuffer^,VertexBufferSize,$00);
   FillChar(IndexBuffer^,IndexBufferSize,$00);
 end;

 tX:=X;
 tY:=Y;
 SubstrLength:=0;
 CurPos:=0;
 //Вертексы:
 p:=Str^.VertexBuffer;
 for i:=1 to L do
 begin

   //Если с отсечением, то рассчитываем переносы по словам:
   if Rectangled then
   begin
   if (i>=CurPos) then
   begin

     SubstrLength:=0;
     //Повторять пока не конец строки:
     While CurPos<L do
     begin
//        ch:=Byte(Pointer(Longint(S)+(curPos))^);
       ch:=Byte(S[curPos]);

       Inc(SubstrLength,Font.CharsInfo[ch].W);

       //Если пробел, то конец слова, или длина слова превышает ширину отсечения,
       //значит длину рассчитали, выходим из цикла:
       if (ch<=32) or (ch=91) or (ch=93) or (Str^.Rect.Right-Str^.Rect.Left<SubstrLength) then
       begin
         Inc(CurPos);
         break;
       end; //if ch=32

       Inc(CurPos);

       //Если вышли за пределы отсечения, то переходим на другую строку:
       if (TX>Str^.Rect.Right-SubstrLength) then
       begin
         tX:=X;
         Inc(tY,Font.CharsInfo[48].H+StrInterval);
       end;

     end; //While CurPos<L

   end; //if (i<=CurPos)
   end; //if Rectangled

//    ch:=Byte(Pointer(Longint(S)+(i))^);
   ch:=Byte(S[i]);
   if Ch<=32 then
   begin
     if Ch=10 then
     begin
       tX:=X;
       Inc(tY,Font.CharsInfo[48].H+StrInterval);
     end else
     if Ch=32 then
     begin
       Inc(tX,Font.CharsInfo[32].W);
     end;
     Continue;
   end;

   if (ch=91) then
   begin
     Selected := True;
     Continue;
   end;

   if (ch=93) then
   begin
     Selected := False;
     Continue;
   end;

   if Rectangled then
   begin
     if TX>Str^.Rect.Right-Font.CharsInfo[ch].W then
     begin
       tX:=X;
       Inc(tY,Font.CharsInfo[48].H+StrInterval);
     end;

   end; //if Rectangled

   if tX>Str^.W then Str^.W:=tX;
   if tY>Str^.H then Str^.H:=tY;

   //Левый верхний угол:
   With TCustomSpriteVertex1(P^) do
   begin
     x:=tX;
     y:=tY;
     z:=0.0;
     RHW:=1;
     if Selected then Color:=SelColorUp else Color:=ColorUp;

     tu:=Font.CharsInfo[ch].TX1;
     tv:=Font.CharsInfo[ch].TY1;
   end;
   Inc(Longint(P),Str^.BytesPerVertex);

   //Правый верхний угол:
   With TCustomSpriteVertex1(P^) do
   begin
     x:=tX+Font.CharsInfo[Byte(Str^.Text[i])].W+1;
     y:=tY;
     z:=0.0;
     RHW:=1;
     if Selected then Color:=SelColorUp else Color:=ColorUp;
     tu:=Font.CharsInfo[ch].TX2;
     tv:=Font.CharsInfo[ch].TY1;
   end;
   Inc(Longint(P),Str^.BytesPerVertex);

   //Правый нижний угол:
   With TCustomSpriteVertex1(P^) do
   begin
     x:=tX+Font.CharsInfo[ch].W+1;
     y:=tY+Font.CharsInfo[ch].H+1;
     z:=0.0;
     RHW:=1;
     if Selected then Color:=SelColorDown else Color:=ColorDown;
     tu:=Font.CharsInfo[ch].TX2;
     tv:=Font.CharsInfo[ch].TY2;
   end;
   Inc(Longint(P),Str^.BytesPerVertex);

   //Левый нижний угол:
   With TCustomSpriteVertex1(P^) do
   begin
     x:=tX;
     y:=tY+Font.CharsInfo[ch].H+1;
     z:=0.0;
     RHW:=1;
     if Selected then Color:=SelColorDown else Color:=ColorDown;
     tu:=Font.CharsInfo[ch].TX1;
     tv:=Font.CharsInfo[ch].TY2;
   end;
   Inc(Longint(P),Str^.BytesPerVertex);

   Inc(tX,Font.CharsInfo[ch].W);

 end; //for i:=0 to L-1 do

 //Индексы:
 p:=Str^.IndexBuffer;
 for i:=0 to L2-1 do
 begin
   //Первый треугольник:
   Word(P^):=(i*4); //Левый верхний угол
   Inc(Longint(P),2);
   Word(P^):=(i*4)+1; //Правый верхний угол
   Inc(Longint(P),2);
   Word(P^):=(i*4)+3; //Левый нижний угол
   Inc(Longint(P),2);
   //Второй треугольник:
   Word(P^):=(i*4)+3; //Левый нижний угол
   Inc(Longint(P),2);
   Word(P^):=(i*4)+1; //Правый верхний угол
   Inc(Longint(P),2);
   Word(P^):=(i*4)+2; //Правый нижний угол
   Inc(Longint(P),2);
 end; //for i:=1 to L do

 Str^.W:=Str^.W-X;
 Str^.H:=Str^.H-Y;

 P:=nil;
end;


 
cyborg ©   (2006-09-19 13:25) [23]

Procedure ScrollString(var Str : P3DString; OfsX,OfsY : Single);
Var
 i  : Longint;
 pv : Pointer;
begin
 if Str=nil then Exit;
 if (Str^.VertexBuffer=nil) or (Str^.VertexBufferSize=0) then Exit;

 pv:=Str^.VertexBuffer;
 for i:=1 to (Str^.TextLength) * 4 do
 begin
   With TCustomSpriteVertex1(PV^) do
   begin
     x:=X+OfsX;
     y:=y+OfsY;
   end;
   Inc(Longint(PV),Str^.BytesPerVertex);
 end;
end;

Procedure DrawText(var Str : P3DString);
Var
 VP : TD3DVIEWPORT9;
begin
 if Str=nil then Exit;
 if Str^.Font=nil then Exit;

 SetTexture(Str^.Font^.Texture);

 SetVFV(Str^.VFV);

 if Str^.Rectangled then
 begin
   With Str^ do
   begin
     VP.X:=Rect.Left;
     VP.Y:=Rect.Top;
//      if VP.X<0 then VP.X:=0;
//      if VP.Y<0 then VP.Y:=0;
     VP.Width:=(Rect.Right-VP.X);
     VP.Height:=(Rect.Bottom-VP.Y);
     VP.MinZ:=0;
     VP.MaxZ:=1;
   end;
   iD3DDevice.SetViewport(VP);
 end;

 With iD3DDevice do
 begin
   DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0,  Str^.VertexCount, Str^.FacesCount, Str^.IndexBuffer^,Str^.IndexDataFormat, Str^.VertexBuffer^, Str^.BytesPerVertex);
 end;

 if Str^.Rectangled then
 begin
   VP.X:=0;
   VP.Y:=0;
   VP.Width:=ScreenWidth;
   VP.Height:=ScreenHeight;
   VP.MinZ:=0;
   VP.MaxZ:=1;
   iD3DDevice.SetViewport(VP);
 end;

 VertexCount:=VertexCount+(Str^.IndexBufferSize div 6);
end;

//Вызывать перед началом вывода текста:
Procedure BeginDrawText;
begin
 With iD3DDevice do
 begin
   SetRenderState(D3DRS_ZENABLE, D3DZB_False);

//    SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
//    SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE);
//    SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE);

//;Выключаем сравнение альфы
//    SetRenderState(D3DRS_ALPHATESTENABLE,1);
   SetRenderState(D3DRS_ALPHABLENDENABLE,1);
   SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
   SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
   SetRenderState(D3DRS_BLENDOP,D3DBLENDOP_ADD);

   SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_NONE );
 end;
end;

//Вызывать после окончания вывода текста:
Procedure EndDrawText;
begin
 With iD3DDevice do
 begin
   SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_ANISOTROPIC );
   SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC );
 end;
end;


 
cyborg ©   (2006-09-19 13:31) [24]

Использование:

Var
 Font1, Font2  : T3DFont;
 Str1,Str2,Str3,Str4,Str5,StrFPS : P3DString;

Загрузка/создание:

 LoadFont(Font1, "Fonts\MS Sans Serif_512x256.bmp",$01000000);
 LoadFont(Font2, "Fonts\Palatino Linotype_256x256.bmp",$01000000);

 S:="ПРОБЕЛ - генерация сцены."+#10+"Стрелки управления перемещают камеру. Клавиши [Insert] и [Delete] - приблизить/удалить камеру";
 InitString( 0, 700, Str1, Font1, S, False, 0,0, $008080FF,$00FFFFFF, $00FFFFFF,$00AAAAAA);

 InitString( 10, 10, StrFPS, Font1, "FPS: 0", False, 0,0, $008080FF,$00FFFFFF, $00FFFFFF,$00AAAAAA);

 InitString( 600, 20, Str2, Font2, "Ниже находится панель с текстом из файла:", False, 0,0, $00FFFFFF,$0000A0A0, $00EECC60,$00CC8810);

Отображение:

 BeginDrawText; //Вызывать перед началом вывода текста

 DrawText(Str1);
 DrawText(Str2);
 DrawText(Str3);
 DrawText(Str4);
 DrawText(Str5);

 EndDrawText;   //Вызывать после окончания вывода текста

Освобождение:

 FreeString(Str1);
 FreeString(Str2);
 FreeString(Str3);
 FreeString(Str4);
 FreeString(Str5);
 FreeString(StrFPS);
 FreeFont(Font1);
 FreeFont(Font2);


 
Cash ©   (2006-09-19 13:34) [25]

cyborg, Nic же говорил о C++. 8)

Nic, наверняк Visual C++, и из под MSVS? так? И DirectX только только начал изучать...
И чё? За две недели надо GUI склепать???
А сколько дадут? Иже не секрет? :)

Так, давай с нуля. В C++ разбираешься? Кодить сможешь?


 
cyborg ©   (2006-09-19 13:35) [26]

Кстати, там некоторые комментарии не соответствуют действительтности, правил код, а коментарии исправить забыл. Например //S у нас PChar, поэтому символы идут с нуля, а не с единицы! :)


 
cyborg ©   (2006-09-19 13:36) [27]

> cyborg, Nic же говорил о C++. 8)

Ничего, переведёт, он же гибкий :)


 
Cash ©   (2006-09-19 13:41) [28]

cyborg ©   (19.09.06 13:36) [27]:
Позырим... :)))

Блин, опять он смылся... наверняк опять на сутки.


 
Nic ©   (2006-09-19 15:53) [29]

cyborg ©   (19.09.06 13:25) [23]
Спасибо на добром коде :)

Cash ©   (19.09.06 13:34) [25]
Пока нисколько. Тестовое задание дали. Я писал в резюме о Delphi + OpenGL. Мне ответили, Visual C++ + DX 10. Я ответил - дайте чуть-чуть времени, я молодой студент и привыкну к тому, к чему даже и не думал привыкать :) Столичная фирма, весьма крупная.


 
Cash ©   (2006-09-19 16:09) [30]

Nic ©   (19.09.06 15:53) [29]:
> Мне ответили, Visual C++ + DX 10.
И где только такие слова говорят??? Ух я бы им... :)

Ну раз уж такая петрушка пошла, то с языком ты уж сам! Топай сюда:
(регся, логинься и задавай вопросы! :))) П7 сделал так. :) )
http://www.gamedev.ru/community/newbie-zone/?info

Там же (или если нада, по мылу) я помогу с теорией или еще чем другим.

ЗЫ: А DX10 это ваще не в степь пока. Он, факт, еще раз десять
перестраиваться будет. Я на него решил переходить когда висту себе
поставлю.


 
Nic ©   (2006-09-19 22:27) [31]

Опечатка, DX 9, конечно :) Спасибо огромное, буду изучать :)



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.058 c
15-1184970892
Tirael
2007-07-21 02:34
2007.08.19
остатки СССР


15-1185169315
gosean
2007-07-23 09:41
2007.08.19
Приветствие


2-1185430951
MVitaliyB
2007-07-26 10:22
2007.08.19
Работа с Новелом!


2-1185443276
ММК
2007-07-26 13:47
2007.08.19
Картинка


2-1185540202
delphiuser1
2007-07-27 16:43
2007.08.19
const при передаче в функцию/процедуру.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский