-
Notifications
You must be signed in to change notification settings - Fork 126
Settings
If any changes are made in the settings dialog form, vogleditor will create a vogleditor_settings.json file to persist the data. On Unix type OSs the file will be created in the order of the following defined environment variables:
$XDG_CONFIG_HOME/vogleditor/
$HOME/.config/vogleditor/
Otherwise it will be created in the current working directory.
The settings dialog form (as of this writing) has two tabs. One labeled "Startup" and the other "Groups"
The Startup tab is editable and contains all settings values, either the defaults or, if a change has been saved, the data stored in the vogleditor_settings.json file. Any changes made and saved on this page won't take effect until the next session.
The Groups tab UI corresponds to the "groups" data section of the Startup tab. The Groups tab allows different views for displaying the API call tree in terms of groupings. Any changes made and saved on this tab takes effect immediately. There are three types of groupings that can be used (or a flat view if none are selected):
Note:
Checkboxes for State/Render groups and Nest options are mutually exclusive (except for glBegin/glEnd explained below). Checking one of these two checkboxes will cause the other one to be unchecked.
This view accumulates API calls into either State changes or Render groups. API calls that cause a write to the framebuffer are render calls. All other API calls are considered state changes.
If both Debug marker groups and State/Render groups checkboxes are checked then debug marker groups take priority. State/Render collections will terminate if a debug marker group API call is initiated (e.g., glPushDebugGroup) and remain inactive until the debug marker group is terminated (in this case glPopDebugGroup)
Unchecked State/Render and Debug marker groups | |
State/Render groups with unchecked Debug marker groups | |
With Debug marker groups checked (render API calls now contained within debug marker groups) | |
##### Debug marker groups Allows grouping of calls for specific blocks of API call streams.
Enable nesting of glPush/PopDebugGroup | |
Use the message argument as the group name | |
Hide the terminating group call | |
##### Nest options Nest options are a list of checkable pairs of API calls that can be nested. When Nest options is checked, the State/Render groups checkbox is unchecked.
Enable Nest options | |
##### Special case _glEnd_ API call **glEnd** is a special case in that it is both a Render call and the terminator of a Nest option (glBegin/glEnd). This affected the decision for the initial implementation of State/Render groups and Nest options to be mutually exclusive. If both were enabled, and if glBegin/glEnd were embedded within another nest (e.g. glNewList/glEndList) within a State group, then when the glEnd API call is encountered, the State group would terminate and a new Render group would be initiated before the parent nest is terminated. This breaks the uniformity of nested calls. When the parent nest terminator (e.g., glEndList) is subsequently encountered in the new group there is no matched parent.
Even though glBegin/glEnd is listed under Nest options and the Nest options group box is unchecked when State/Render groups is checked, the status of the glBegin/glEnd checkbox will still affect how the State/Render groups view displays glBegin/glEnd API calls. If the glBegin/glEnd checkbox is unchecked then Render groups will only display the glEnd call. If the glBegin/glEnd checkbox is checked then Render groups will display the glBegin/glEnd call nest.
State/Render groups with unchecked nested glBegin/glEnd calls | |
State/Render groups with checked nested glBegin/glEnd calls | |