You need the following Simdify® modules to complete this exercise: Simdify® Free Edition
Simdify® Free Edition includes reference document layouts for 888 RGB and 8888 ARGB. Think of these as pre-made workloads that show you how to use a set of fundamental Simdify® features. In this exercise, you'll learn how to access reference workloads and export a working OpenGL® application.
The application displays a splash screen and then the application desktop appears. The main menu is composed of three items that contain commands relevant to the current context (which is an empty document). The interface changes when you create a new file or load a file from disk.
The software displays the reference library document selector.
The software displays the open dialog. There is a single file named sampler2D.box contained in the folder.
The reference document appears.
This is a pretty simple workload designed to render a texture to the screen. Yes, it's simple, but it's very important to be able to see results!
The software exports the document, generating all the C++ and Visual Studio® solution files. This could take 30-60 seconds depending on what you're doing. When the export is complete, the software opens the folder containing the exported document.
Visual Studio starts to compile the files in the solution. By default, the exporter builds a debug version. (You can build a release version if you prefer.)
The solution takes a few minutes to compile and link. Proceed to the next step when the build is complete.
This shows your OpenGL workload running in real-time.
This is the basic process that you'll use every time you export a workload from the Layout application.
You'll notice the build log (a partial build log is shown below). Build messages, including errors and warnings, are displayed here. If you have problems, please email support@scenomics.com and we'll do our best to get you up and running.
--- <Executing Command 'ExportLayoutToTargetPlatform'> ---
Processing <Model3D> named Layout.
Traversing <Group> named Layout.
Processing <IncludePaletteNode> named Includes.
Traversing <Group> named Includes.
Processing <DataPaletteNode> named Locals.
Traversing <Group> named Locals.
Processing <ShaderPaletteNode> named Shaders.
Traversing <Group> named Shaders.
Processing <Program> named Visual.
Traversing <Group> named Visual.
Processing <TexturePaletteNode> named Textures.
Traversing <Group> named Textures.
Processing <Texture> named IPF_8888_ARGB.
Processing <GeometryPaletteNode> named Geometry.
Traversing <Group> named Geometry.
Processing <ParametricMesh> named Mesh.
Traversing <Group> named Mesh.
Processing <TexturePaletteNode> named Load.
Traversing <Group> named Load.
Processing <NodeLink> named Load: IPF_8888_ARGB.
Traversing <Group> named Load: IPF_8888_ARGB.
Processing <ShaderResourceNode> named Visual.
Traversing <Group> named Visual.
Processing <ProgramBindNode> named Bind Visual.
Traversing <Group> named Bind Visual.
Processing <Float32MatrixNode> named uniform mat4x4 modelViewMatrix.
Processing <Float32MatrixNode> named uniform mat4x4 modelViewProjectionMatrix.
Processing <Int32Node> named uniform int image_width.
Processing <Int32Node> named uniform int image_height.
Processing <Float32Node> named uniform float format_min.
Processing <Float32Node> named uniform float format_max.
Processing <SamplerNode> named layout( binding = 0 ) uniform sampler2D pixel_data.
Processing <ShaderResourceNode> named Render.
Traversing <Group> named Render.
Processing <NodeLink> named Mesh.
Traversing <Group> named Mesh.
Validating <Program>: /Shaders/Visual
Validating vertex shader: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\vertex_shader.glsl
Validating fragment shader: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\fragment_shader.glsl
Validating <Float32MatrixNode>: /Visual/uniform mat4x4 modelViewMatrix
Validating <Float32MatrixNode>: /Visual/uniform mat4x4 modelViewProjectionMatrix
Validating <Int32Node>: /Visual/uniform int image_width
Validating <Int32Node>: /Visual/uniform int image_height
Validating <Float32Node>: /Visual/uniform float format_min
Validating <Float32Node>: /Visual/uniform float format_max
Validating <SamplerNode>: /Visual/layout( binding = 0 ) uniform sampler2D pixel_data
Building OpenGL Export Version Info...
Setting OpenGL context to version 4.3.
Using platform profile flag: WGL_CONTEXT_CORE_PROFILE_BIT_ARB
Exporting Document...
Exported <EditModel3D> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Layout-256EDB4E-5A6D-4498-9FC9-58C09D4DCD5B.spa_binary_node
Exported <IncludePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Includes-8CE4484E-3AD5-4D4C-8CB8-635810E9DD8D.spa_binary_node
Exported <DataPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Locals-15377097-4918-42F8-A48F-1933683D177D.spa_binary_node
Exported <ShaderPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Shaders-38D7B4A5-8505-4404-8C40-400348BC91EB.spa_binary_node
Exported <Program> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Visual-E2B147A5-16BC-44ED-BA59-C474E91F2748.spa_binary_node
Exported <TexturePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Textures-C5097B00-2773-4F0F-B29D-7062C7F79059.spa_binary_node
Exported <Texture> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\IPF_8888_ARGB-0C766E53-34BE-4028-A89E-E670A66EDF2C.spa_binary_node
Exported <GeometryPaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Geometry-9C90EF6F-D053-40CA-8BC9-E51FFB31B132.spa_binary_node
Exported <ParametricMesh> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Mesh-2EB4B221-3D5A-42A4-9D8A-CAF420E23C67.spa_binary_node
Exported <TexturePaletteNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Load-2F4F45E0-053D-4D4C-93AD-2A294FCF3A24.spa_binary_node
Exported <NodeLink> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Load: IPF_8888_ARGB-192E1CFB-9B24-494E-8939-01E5330B8279.spa_binary_node
Exported <ShaderResourceNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Visual-DC4DA5B5-DF1B-41F5-93D9-D333293FA574.spa_binary_node
Exported <ProgramBindNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Bind Visual-883F089B-CCA8-4D74-97D2-6F1887F6F7A1.spa_binary_node
Exported <Float32MatrixNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform mat4x4 modelViewMatrix-28239F31-DC63-43E2-8FE4-2144132DA998.spa_binary_node
Exported <Float32MatrixNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform mat4x4 modelViewProjectionMatrix-F78756C0-4A88-4709-A188-4EA10767A889.spa_binary_node
Exported <Int32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform int image_width-88BD7551-7843-4071-AABB-991240F8BFF7.spa_binary_node
Exported <Int32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform int image_height-EAC94C3D-7A1E-498B-B64E-D1CB1E539F57.spa_binary_node
Exported <Float32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform float format_min-3C479C78-746D-4153-9B96-79AD68295E06.spa_binary_node
Exported <Float32Node> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\uniform float format_max-BD190945-715B-4EDB-B1A7-FE50F8692FAC.spa_binary_node
Exported <SamplerNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\layout( binding = 0 ) uniform sampler2D pixel_data-2BD9DD6C-DA5E-48B7-BCB6-4BD1109E4750.spa_binary_node
Exported <ShaderResourceNode> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Render-20B26E27-47FA-4F8C-8DE4-58E1BC513845.spa_binary_node
Exported <NodeLink> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Mesh-5FEB1A3E-7212-4B28-A523-9AD9B1CA016C.spa_binary_node
Exported <Model3D> to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\sampler2D.spa_binary_graph
Generating Source Code...
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\AppWindow.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\AppWindow.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Application.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\Application.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\ApplicationOptions.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\ApplicationOptions.h
...
...
...
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\VectorT.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\VectorT.inl
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteFloat32Matrix4x4Uniform.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteFloat32Matrix4x4Uniform.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteFloat32Uniform.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteFloat32Uniform.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteInt32Uniform.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WriteInt32Uniform.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\glext.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\khrplatform.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\wglext.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WinMain.cpp
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\WinMain.h
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\License
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\.clang-format
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\vertex_shader.glsl
Exported to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\fragment_shader.glsl
Wrote Visual Studio Solution to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\sampler2D.sln
Wrote Visual Studio Project to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\sampler2D.vcxproj
Wrote Visual Studio Filter to disk: D:\Release6\Content\Templates\Glsl\Reference\430\IPF_8888_ARGB\sampler2D\Export Win64 sampler2D\sampler2D.vcxproj.filters
Document export complete.
This exercise is complete.