The Layout Application

You need the following products to complete this exercise: Simdify® Free Edition

This section describes the Layout application user interface and basic document layout.

User Interface

This is Layout, the main OpenGL application authoring tool in the Simdify platform. You'll learn to use it to design complete OpenGL applications.

This is a picture of the Simdify user interface.

For the most part, its interface is pretty simple. It's a standard Windows® desktop applications composed of a main menu, hierarchy editor, rendered worksheet, property editor, and console. You can rearrange these items if you wish, but years of experience have shown us that this is the most convenient layout for most users. Note that you can always hit ALT + 4 to show and hide the docking windows. You can also select Desktop » Toggle Panels to do the same thing. This will give you a full-screen view of the OpenGL application you're designing.

It's important to know that you don't create these starter documents manually. Most of these nodes are created by the application when you create a new file. Additional resources, such as uniforms, uniform buffers, or shader buffers, are added when you modify your GLSL source code and then add new resources to the document. You may also add other additional resources, such as memory barriers, as needed. After adding resources, you may need to use the property sheet to configure the new nodes. Sometimes you will create new textures or load textures from disk.

Main Menu

The main menu is a standard menu. You can select various options and commands here.

Hierarchy Editor

The hierarchy editor displays the layout of your OpenGL application. You'll learn to use resources such as <Program> node objects, <Texture> node objects, <VariableNode> objects, and <ParametricMesh> objects. The rendering loop starts at the root of the document and traverses nodes using a breadth-first search, rendering each node as it is traversed. This means you can make certain assumptions about how your application behaves by looking at the hierarchy.

Move the mouse over the icons in the image below to learn about the function of each node. Note that some of the groups that contain resources are marked invisible. Their contents would be rendered immediately if they were visible, and we need to control how/when all resources are rendered.

We can divide the document into a few key areas. The first could be called the Data Section. In this section, you define resources used by the application.

This is a picture of the document.

The second section could be called the Implementation Section. In this section you implement the application's behavior.

This is a picture of the document.

You can have as many data and implementation sections as you want, but it's more common to have one data section and multiple implementation sections. An implementation section is sort of like a rendering pass, but that term doesn't quite fit all situations. It's really a group of related operations that are performing the workload required by your OpenGL application. Hence the term implementation.


The worksheet displays the work performed by your OpenGL application. Sometimes this will be rendered output, but it also might be a red square if you're implementing compute shaders that don't necessarily create a visual result. Changes made in the hierarchy and property sheet, or by application commands, are propogated instantly to the worksheet.

This is a picture of the worksheet.

Property Editor

The property sheet displays node properties. You can double click a node in the hierarchy to edit its properties.

This is a picture of the property sheet.


The console displays status information. For example: if there are shader compiler errors, or commands that generate output messages.

This is a picture of the console.

That's the basics at least, and actually there isn't a lot more. This knowledge will help you when you create your first shader!