(это возможно устарело, но лет 10 назад работало) glReadPixels действительно не быстр, но он чувствителен к формату чтения. BGRA раньше был в разы быстрее RGBA проверь.
Краем глаза глянул исходники. странные впечатления((
Код: Выделить всё
function StrLengthInBytes(const Value: string): int32;
begin
{$ifdef FPC}
Result := Length(Value);
{$else}
Result := Length(Value) * SizeOf(Char);
{$endif}
end;
откуда уверенность что в фпц строки всегда с однобайтовыми [s]символами[/s] неправильно выразился, не символами, элементами которые []? Result := Length(Value) * SizeOf(Value[1]); будет работать и в дельфи и в фпц с любым типом строк
Код: Выделить всё
function StrLength(const Value: string): int32;
begin
{$ifdef FPC}
Result := UTF8LengthFast(PChar(Value));
{$else}
Result := Length(Value);
{$endif}
end;Для фпц ты составные символы учитываешь, а почему для делфи нет? они там гораздо реже, но есть
