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 displays a dialog that allows you to export the application layout to the Simdify runtime format.
The software exports the document, generating all the binary files needed for the runtime. 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.
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-49F64CCD-79B4-490E-9D68-14B9F47F727B.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-E7329EAB-9EF0-4149-80CA-4B369754E028.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
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
Document export complete.
This demonstrates the entire process of taking a document, exporting it, and executing the workload in the Simdify runtime.