View Issue Details

IDProjectCategoryView StatusLast Update
0000161Gorilla3D[All Projects] Bug Reportspublic2021-04-23 11:29
ReporteradministratorAssigned Toadministrator 
Status resolvedResolutionfixed 
Product Version0.8.3.x 
Target Version0.8.3.xFixed in Version0.8.3.x 
Summary0000161: Bug: IDE crashes on working with empty project
DescriptionThe IDE works on Win32 basis with DirectX.
This context can not be cleared due to a fmx bug.
Bug was reported.

Hopefully it's getting fixed in new releases.
For elder versions we found a dirty hack by ASM source reading.
TagsNo tags attached.
Delphi-Version 10.1.1
OpenGLVersionOpenGL 4.3



2021-04-23 11:29

administrator   ~0000174

A fix was implemented and will be available from v0.8.3.1858+

There is a bug in TContextManager.Uninitialize(), where FContextList will be cleared, but FDefaultContextClass not.
This is getting important at designtime. The IDE automatically registers a DirectX context on Win32 platform.
And even we register our context class, the previously declared DirectX class will be used.

This leads to missing classes and unsupported GPU commands.
When opening a Gorilla3D project directly, our context will be registered at first and the problem didn't occur.

The issue was reported to Embarcadero.
Our fix for elder versions 10.1.1 - 10.4.2 will do:
+ detect the exact compiler build number (because method offsets are compiler dependent)
+ read the "TContextManager.InitializeShader" method, which is public, by TRttiInstanceType
+ we then have researched all offsets for all compilers
+ those are added to the "InitializeShader"-address
+ then we read the global variable address for TContextManager.FDefaultContextClass directly from ASM source code

This is very dirty and only works for Win32. But because Delphi IDE is only Win32, we can go that way.
Hopefully in future it will be solved by Embarcadero.

Issue History

Date Modified Username Field Change
2021-04-23 06:31 administrator New Issue
2021-04-23 06:31 administrator Status new => assigned
2021-04-23 06:31 administrator Assigned To => administrator
2021-04-23 11:29 administrator Status assigned => resolved
2021-04-23 11:29 administrator Resolution open => fixed
2021-04-23 11:29 administrator Fixed in Version => 0.8.3.x
2021-04-23 11:29 administrator Note Added: 0000174