Autor Téma: WinApi.OpenGL - chybně definované konstanty  (Přečteno 1136 krát)

Offline vandrovnik

  • Padawan
  • ******
  • Příspěvků: 1592
  • Karma: 52
    • Verze Delphi: 11.3
WinApi.OpenGL - chybně definované konstanty
« kdy: 27-07-2016, 18:16:22 »
Ahoj,

našel jsem "trapnou" chybu v Delphi XE6 - v unitě WinApi.OpenGL jsou špatně definované některé konstanty.

Konkrétně tam je:
Kód: Delphi [Vybrat]
  1.   GLU_TESS_WINDING_RULE  =         100110;
  2.   {$EXTERNALSYM GLU_TESS_WINDING_RULE}
  3.   GLU_TESS_BOUNDARY_ONLY =         100111;
  4.   {$EXTERNALSYM GLU_TESS_BOUNDARY_ONLY}
  5.   GLU_TESS_TOLERANCE     =         100112;
  6.   {$EXTERNALSYM GLU_TESS_TOLERANCE}
  7.  

Jenže správné hodnoty jsou:
Kód: Delphi [Vybrat]
  1.   GLU_TESS_WINDING_RULE  =         100140;
  2.   {$EXTERNALSYM GLU_TESS_WINDING_RULE}
  3.   GLU_TESS_BOUNDARY_ONLY =         100141;
  4.   {$EXTERNALSYM GLU_TESS_BOUNDARY_ONLY}
  5.   GLU_TESS_TOLERANCE     =         100142;
  6.   {$EXTERNALSYM GLU_TESS_TOLERANCE}
  7.  

Docela mi trvalo, než mi došlo, že zrovna v tomhle může být chyba...

Je to v novějších verzích už správně?

Když to opravím v té unitě (mám Delphi XE6 Pro), stačí to, nebo je možné, že špatná hodnota už je někde zakompilovaná a tou změnou v .pas to nespravím?

Díky,

Karel

Offline Marek Weyda

  • Hrdina
  • ****
  • Příspěvků: 283
  • Karma: 8
    • Verze Delphi: Delphi 2007, 10.1 Berlin
Re:WinApi.OpenGL - chybně definované konstanty
« Odpověď #1 kdy: 28-07-2016, 08:32:41 »
Tak XE6 nemám a v životě jsem jí nepoužíval, ale na verzi 10.1 Berlin je to tak, že GLU_TESS_WINDING_RULE má hodnotu 100140 a na Delphi 2007 má hodnotu 100110. Co když ale nejde o chybu, ale jenom prostě o verzi OpenGL knihovny ? Přeci jenom mezi Delphi 2007 a 10.1 Berlin je skoro 10 let rozdíl. Nevím, těžko poradit.

Offline vandrovnik

  • Padawan
  • ******
  • Příspěvků: 1592
  • Karma: 52
    • Verze Delphi: 11.3
Re:WinApi.OpenGL - chybně definované konstanty
« Odpověď #2 kdy: 28-07-2016, 09:19:17 »
Ta konstanta má být pořád stejná - už v Delphi 6 v nějaké "cizí" unitě pro práci s OpenGL byla hodnota 100140, jenže pak začlenili podporu přímo do Delphi a zřejmě tam hodně dlouho měli hodnotu špatnou. Tak alespoň že v nejnovější je to už opraveno. Beru to jako trest za to, že nekupuju každoročně nejnovější verze a že teprve převádím aplikaci z Delphi 6 do XE6 :-)