-
frame © (04.02.05 02:39) [40]Вот забыл. Основной файл - template.dpr. Если компилировать в Delphi то ничего менять не нужно, если в FreePascal - расширение вместо dpr на pas поменять (хотя если не менять оно тоже скомпилируется, только в fp.exe подсветка синтаксиса на этом файле работать не будет).
-
Sniper17 (04.02.05 15:07) [41]FPC скомпилил без вопросов! ;-) Delphi 7 не хочет - обижается на стоки ReadFile(F,Header,SizeOF(Header),n,nil) фразами
[Error] TexLoad.pas(179): Types of actual and formal var parameters must be identical -
frame © (04.02.05 18:46) [42]Delphi7 не для OpenGL на мой взгляд, у меня Delphi 3 - всё ок! Хотя я всё равно разберусь ;) Вот, кстати http://opengl.land.ru/files/header.zip ->
моя версия gl.pp (только для win32!) - по идее, должно уменьшить размер exe на 20-30кб -
frame © (04.02.05 22:37) [43]Попробуй посмотреть, какие параметры требует ReadFile в Delphi7. Мне кажется, если два последних поменять с Integer на Longint или что-то в этом роде, то должно работать.
-
Sniper17 (07.02.05 17:44) [44]Кстати не работает на 1.9.6. Работает только на 1.0.10 ;-(
-
frame © (08.02.05 00:42) [45]В IDE нужно поставить mode-release, тогда всё заработает. У меня с коммандной строки всё компилируется и запускается без проблем.
Для gl.pp нужно включить smartlink (он собственно, для этого режима и делался)
Вы ж как-то поинформативней описуйте ошибки ;) -
Wyvern (25.02.05 15:30) [46]>>frame: Как-то всё у вас тут тяжело
Так онож ещё и JPG грузит (да и заголовочный файл ипользуется нестандартный dglOpenGL.pas, всё-в-одном).
>>frame: Иногда проще написать самому, чем добиться этого от окружающих =)
Всегда :о) -
Sniper17 (26.02.05 13:25) [47]новый dglOpenGL.pas с версии 1.6 поддерживает и FPC=)
Может переделать? -
Wyvern (27.02.05 23:13) [48]>>Sniper17: новый dglOpenGL.pas с версии 1.6 поддерживает и FPC
Уже 1.6 есть, это хорошо :о)
1.5 тоже FPC поддерживает, только как-то коряво.
>>Sniper17: Может переделать?
Чего переделать? -
Romtek (01.08.05 19:16) [49]Модуль texload.pas не скомпилировался:Texture.pas(508,31) Error: You can not reach COSTAB from that code
Texture.pas(564,31) Error: You can not reach COSTAB from that code
отсюда:
PROCEDURE invDCTfix(var dst,src:Tblocklongint);assembler; -
имя(23.07.09 14:42) [50]Удалено модератором -
0x00FF00 (15.11.09 16:02) [51]звиняюсь за некропостинг, однако не удержусь:
> procedure CopySwapPixel(const source, destination: Pointer);
> asm push eax push edx push ebx mov eax, source mov edx,
> destination mov bl,[eax+0] mov bh,[eax+1] mov [edx+2],bl
> mov [edx+1],bh mov bl,[eax+2] mov bh,[eax+3] mov [edx+0],
> bl mov [edx+3],bh pop ebx pop edx pop eaxend;
о хосспаде...
кто писал это... этот... код?
есть ведь гораздо более быстрые (алсо, вменяемые) способы!
EAX: [ 0 1 2 3 ]
EDX: [ 2 1 0 3 ]
напоминает RGBA -> BGRA переход, правда?
не проще ли будет сделать вот так:procedure CopySwapPixel(const source, destination: Pointer);
asm
MOV ECX, [EAX];
BSWAP ECX;
ROR ECX, 8;
MOV [EDX], ECX;
end;
по х86-соглашениям (а этот код определённо заточен под 32, если Pointer-ы имеют четырёхбайтный размер), стандартная pascal-евская директива вызова предполагает наличие в EAX первого параметра, а в EDX — второго.
на протяжении всех 4 строчек ни тот, ни другой, в полном согласии с директивой const, вручную не меняются.
по тем же соглашениям, *CX и *DX — это регистры, сохраняемые вызывающим, т.е. вызываемая подпрограмма о них заботиться не должна.
единственное замечание — указанный код не заработает на процессоре классом ниже *486.
впрочем, не думаю, что в наше время кто-то попытается для раскодировки всяческой мультимедии пользовать триставосьмидесятники %)
но если уж вдруг, могу предоставить код и для них:
procedure CopySwapPixel(const source, destination: Pointer);asm
MOV ECX, [EAX];
XCHG CL, CH;
ROL ECX, 16;
XCHG CL, CH;
ROL ECX, 8;
MOV [EDX], ECX;
end;
(была, впрочем, реализация и в три строки, только, к сожалению, забыл принцип, там использовавшийся. пусть уж так. кому они, в конце концов, нужны на десктопах, эти триставосьмидесятники...) -
Sergey (20.01.10 17:11) [52]У меня почему-то компилятор ругается на директивы {$MODE DELPHI}
{$asmmode Intel} -
0x00FF00 (27.01.10 19:10) [53]
> У меня почему-то компилятор ругается на директивы
> {$MODE DELPHI} {$asmmode Intel}
возможно, компилятор не тот? =)
взгляни на название конференции.