Warning: Type size mismatch, possible loss of data / range check error
- Код: Выделить всё
{$WARNINGS OFF}
FRGB.R := random(255);
FRGB.G := random(255);
FRGB.B := random(255);
{$WARNINGS ON}
Ну тут компилятор правильно возмущается, но так как я "укладываюсь" в границы типа все ок.
- Код: Выделить всё
procedure PrintString(x, y, z: GLfloat; Str: PChar; FontName:
string; AColor:TGLColor);
FontsManager.PrintString(FControlRec.Left + FParentWRec.Left +
FControlRec.Width / 2 - Length(FControlRec.Caption) * 16 / 2,
FParentWRec.Top - FControlRec.Top - FControlRec.Height / 2 - 8, 0,
FControlRec.Caption, 'font5', AColor);
GLfloat = Single;
Вот тут я не пойму причин его возмущения

Все переменные типа GLfloat...
- Код: Выделить всё
var
bytes: Word;
argnum: Word;
i: Integer;
P, Q: PByte;
begin
bytes := argnum * 4;
P^ := 8 + 4 * i;
P^ := 4 + bytes;
Это кусок SDL модуля и тут он тоже ругается на разницу типов.
Вообще раньше я как то не обращал внимание, хотя на самом деле проблема есть и теоретически может привести к неслабым глюкам там где их не ждешь...

И еще один вопрос. Как правильно перевести Double в Single. У меня скрипты питона возвращают числа только в виде Double, в то время как функции OpenGL работают с числами Single. Хотелось бы чтобы не было неприятных "сюрпризов"... И хотя все работает "и так", хочется чтобы все работало правильно...