Найдено 580 результатов

runewalsh
20.03.2026 21:59:16
Форум: Разработки на нашем сайте
Тема: Cheb's Game Engine
Ответы: 909
Просмотры: 1263699

Re: Cheb's Game Engine

Ого, ты жив! (Не то что НЕКОТОРЫЕ. Не будем показывать пальцем.)

Видал, чего я в транке наделал? ( Новый крутой менеджер памяти , новый крутой heaptrc , крутые реализации базовых функций типа Move и CompareByte для x86/x64 (в 3.2 многие из них работают просто отвратительно: CompareByte на x64 была ...
runewalsh
05.08.2024 17:54:41
Форум: Free Pascal Compiler
Тема: Тайна shr
Ответы: 2
Просмотры: 9339

Re: Тайна shr

Сдвиг на значения ≥ разрядности переменной (32 для LongWord) не определён.
runewalsh
13.11.2023 23:11:30
Форум: Lazarus
Тема: Передача параметров через указатель на функцию
Ответы: 7
Просмотры: 3350

Re: Передача параметров через указатель на функцию

Через поля TForm1. Это указатель на самом деле не на просто функцию, а на метод — он физически хранит два указателя, на функцию и на self, запоминаемый в момент @.
runewalsh
04.11.2023 00:27:53
Форум: Обучение Free Pascal
Тема: Не могу понять, как писать исключения
Ответы: 12
Просмотры: 35759

Re: Не могу понять, как писать исключения

Нужно сделать uses SysUtils;, он занимается преобразованием ситуации, возникающей при делении на 0, в бросание исключения языка EZeroDivision.
runewalsh
04.10.2023 20:59:09
Форум: Разработки на нашем сайте
Тема: tta кодек на Паскале
Ответы: 9
Просмотры: 2326799

Re: tta кодек на Паскале

Alexander писал(а):В Паскале нет sar, sal, а только shl, shr.
Есть! А если бы и не было, можно было бы какой-нибудь не очень сильно медленный прикол придумать, типа

Код: Выделить всё

function Sar(x, by: int32): int32;
begin
	result := int32(x shr by or -(x shr (bitsizeof(x) - 1)) shl (bitsizeof(x) - 1 - by));
end;
runewalsh
19.09.2023 16:42:03
Форум: Общие вопросы
Тема: private против protected
Ответы: 7
Просмотры: 48133

Re: private против protected

И в пределах одного модуля все могут видеть всё сквозь private и protected, но в Delphi то же самое, это эквивалент «friend class» в C++. Можно выключить через strict private и strict protected, но зачем.
runewalsh
25.08.2023 08:01:59
Форум: Обучение Free Pascal
Тема: Перекрытие методов в nested классах. Как?
Ответы: 7
Просмотры: 27123

Re: Перекрытие методов в nested классах. Как?

Да, наверное, это баг, ща зарепорчу. Можно обойти как:

type
TMyWSMsgPump_descendant = class (TWSThreadMessagePump )
protected
type
Local_TMessageDriverThread = TMessageDriverThread;
TMyDrvThread_descendant = Class(Local_TMessageDriverThread )
Public
Procedure Execute;override;
End;
end;
runewalsh
01.03.2023 22:32:30
Форум: Разработки на нашем сайте
Тема: Cheb's Game Engine
Ответы: 909
Просмотры: 1263699

Re: Cheb's Game Engine

благо, Паскаль умеет в воспроизводимость, благодаря стандартизованной до бита математике с 32-битными флоатами
Не умеет, я пробовал сделать функцию LdExp(single) и она в зависимости от платформы могла считать точнее single, и причина, видимо, неизвестна ( пример в обратную сторону , где расчёты в ...
runewalsh
05.01.2023 20:55:26
Форум: Общее
Тема: Стиль кода FP
Ответы: 22
Просмотры: 90588

Re: Стиль кода FP

Это стиль кода самого Free Pascal, не более. Он далёк от общепринятого — того, в котором написаны исходники модулей Delphi.
runewalsh
08.09.2022 03:13:29
Форум: Free Pascal Compiler
Тема: О производительности динамических массивов...
Ответы: 38
Просмотры: 24560

Re: О производительности динамических массивов...

Я себе давно сделал велосипед (не через managed record или что iskander подразумевает, а через ручную работу с RTTI и заголовком массива), который как раз в порядке багофичи не зануляет элементы (если они неуправляемые). Но мне это нужно было не потому, что я очень страдал от лишних занулений, а ...
runewalsh
07.09.2022 14:21:11
Форум: Free Pascal Compiler
Тема: О производительности динамических массивов...
Ответы: 38
Просмотры: 24560

Re: О производительности динамических массивов...

beria писал(а):Результат
9875
12742320
19900
7437
12742320
19900
У меня, без изменений кода, x86-64, -O3:
9031
12742320
19900
9578
12742320
19900
:>
runewalsh
07.09.2022 11:08:26
Форум: Free Pascal Compiler
Тема: О производительности динамических массивов...
Ответы: 38
Просмотры: 24560

Re: О производительности динамических массивов...

GetMem не заполняет память нулями, SetLength заполняет (или даже вызывает кастомные Initialize/Finalize, что ещё медленнее). Если использовать GetMem+FillChar, будет одинаково.

Но если ты вызвал SetLength, то ты эти элементы собираешься использовать, то есть будешь с ними делать что-то, на фоне ...
runewalsh
03.09.2022 15:53:24
Форум: Общее
Тема: Детский вопрос про diff файл
Ответы: 2
Просмотры: 12530

Re: Детский вопрос про diff файл

Код: Выделить всё

cd <папка с репозиторием FPC>
git diff [файлы, можно с масками *?, по умолчанию диффается всё] >output.patch
runewalsh
22.08.2022 15:52:07
Форум: Разработки на нашем сайте
Тема: Cheb's Game Engine
Ответы: 909
Просмотры: 1263699

Re: Cheb's Game Engine

Cheb писал(а):Изпользуемый гапи - OpenGL / GL ES, что налагает ограничение: все команды на рендер - только в основном потоке.
В теории, shared contexts для того и задуманы, чтобы это обойти, они позволяют заниматься вещами вроде загрузки шейдеров и других ресурсов в отдельном потоке. Сам не пробовал...
runewalsh
17.08.2022 05:57:23
Форум: Free Pascal Compiler
Тема: Вопрос знатокам: удалять элементы TMap в процессе итерации
Ответы: 9
Просмотры: 7950

Re: Вопрос знатокам: удалять элементы TMap в процессе итерац

Можно сделать коллекцию, действующие итераторы которой отслеживаются в ней же и исправляются при удалениях элементов.
Это не то чтобы очень хорошая идея, но есть интересные юзкейсы; например, список коллбэков, вызываемых как for cb in list do cb.Call, где Call может добавлять или удалять другие ...