OpenGL стандартный модуль


#21

Вообще, текст ошибки предельно ясен и это легко исправляется: Rot Triangle 1.vertex.glsl (265 Байты)

И уже это у меня нормально работает:

UPD: а, серёга уже про это написал давным давно, ну ладно


#22

Спасибо, с вашими поправками у меня теперь даже графическое окно не показывается - приложение просто завершает свою работу


#23

У меня всё работает:


#24

По поводу оптимизации размера.

unit u;

type A = class
  i,j: integer;
  procedure ppppppp; begin end;
  static procedure sssssss; begin end;
end;

B = class
  function a1: A := new A;
end;

end.

и

uses u;

begin
  var a1: B; 
end.

В exe шнике нет ни намека на класс A - что я и говорил. Если захотеть сократить размер exe, это можно сделать.


#25

Ну и что? Тут всё понятно, a1 не добавилась и поэтому не потянула за собой класс A. Что вы пытались этим показать?


#26

Ну и?

Или оно работает в каких-то эксклюзивных условиях? Win 7, 64 бит


#27

Сейчас бы запускать .exe из архива и жаловаться что не работает.

И уже сказали выше, ему ещё нужен файл шейдера (.glsl).


#28

Вообще-то из архива запускаются даже инсталляторы ну очень больших и важных программ, так что не надо “ля-ля”. Архив тут не при чем.

А вот шейдеры - да, с ними работает, вращается треугольник.


#29

.exe тут причём. Его нужно перекомпилировать, как я показал (это раз). Два — нужна последняя версия паскаля, которой ещё нет на сайте. Вот установщик: https://drive.google.com/open?id=1OQBmawcs6Qttbr6J4ljEtComhBreov60


#30

Ну я (и мой компьютер) про это не знали, наверно поэтому заработало.


#31

об этом было написано выше ещё неделю назад


#32

Я понял, что работает - это неважно, главное - было написано, а я не прочитал, негодник.


#33

На самом деле нет. Компилируется и в последней официальной версии. Но только 1 раз)))

Ну, если не хотите ставить не_официальную версию паскаля - достаточно удалять .pcu после каждой компиляции, тогда и в старой версии будет работать.


На новом компе всё ещё жуть чо твориться, кучу программ надо доскачать. И ssh чот не настраивается. Ну, кое как POCGL скачал и перепаковал - вот:

OpenGL.zip (349,5 КБ)

Далее тестируйте именно на этом. Готовые .exe вообще нет смысла запускать, потому что ошибки так не выводит.


#34

Замените поля на функции и сделайте скрытое поле, которое функция будет инициализировать при первом обращении


#35

У меня на этом вот вот это

0(12) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120
0(13) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120
0(16) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120

Vertex info
-----------
0(12) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120
0(13) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120
0(16) : error C7502: OpenGL does not allow type suffix 'f' on constant literals in versions below 120
(0) : error C2003: incompatible options for link

INVALID_OPERATION
INVALID_OPERATION
INVALID_OPERATION


#36

Так а чем это поможет, если поле всё равно будет существовать? Я уже несколько раз сказал, 1MB это не инициализатор полей, а сами поля + их типы-делегаты.


#37

Интересно, то есть ваш GPU не поддерживает float… А попробуйте заменить f на d? А что если вообще убрать букву?

Хотя стоп, странно, в предыдущей ошибке же писало что тип элементов того вектора - это таки float.


#38

Если

type B = class
  function f: A; begin if a1<>nil then Result := a1 else begin a1 := new A; Result := a1 end end;
  a1: A := функция-инициализатор
end;

то в итоговом коде будет только класс B, но не класс A, пока Вы не вызовите B.f

Если же даже в простом шаблончике кода OPENGL участвуют все классы, то это не выход - да будет груда кода - а как вы хотели?


#39

Сделал в комментарии версию 120 - заработало


#40

Я закачал новую версию