- Код: Выделить всё
- 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 тоже есть жизнь.
Но, что самое смешное, в реальной винде неправильный вариант работал без ошибок!
А в древнем вайне эта ваша авто-перекодировка !внезапно йокнулась.



