- Код: Выделить всё
Operating System: Wine 1.3.28 / Ubuntu 11.10
User name: cheb
CPU Phenom II X2 550
x2 logical cores
level 2 cache: 512 Kbytes, line size 64 bytes
TSC invariancy: yes
TSC frequency: 3.11 GHz)
где она !внезапно упала, с Failed to load "GL_ARB_framebuffer_object"
Почесал межушную кость, стал копать.
Откопал кусок кода, наивно полагающий String = AnsiString
- Код: Выделить всё
function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean;
var
extensions: PAnsiChar;
start: PAnsiChar;
where, terminator: PAnsiChar;
begin
if (Pos(' ', extension) <> 0) or (extension = '') then
begin
Result := FALSE;
Exit;
end;
if searchIn = '' then extensions := PAnsiChar(glGetString(GL_EXTENSIONS))
else extensions := PAnsiChar(searchIn);
start := extensions;
while TRUE do
begin
where := StrPos(start, PAnsiChar(extension));
if where = nil then Break;
terminator := Pointer(PtrUInt(where) + Length(extension));
if (where = start) or (PAnsiChar(PtrUInt(where) - 1)^ = ' ') then
begin
if (terminator^ = ' ') or (terminator^ = #0) then
begin
Result := TRUE;
Exit;
end;
end;
start := terminator;
end;
Result := FALSE;
end;
Исправил на AnsiString - сразу всё обнаружилось, взлетело, и рендером доказало, что на GeForce 7025 тоже есть жизнь.
Но, что самое смешное, в реальной винде неправильный вариант работал без ошибок!
А в древнем вайне эта ваша авто-перекодировка !внезапно йокнулась.