Explore Reference Workload

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.

Start The Layout application

  1. Start the Layout app. (Start » Programs » Scenomics » Layout) or (Windows® key and then type 'Layout' to find the app icon.)

    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.

    This is a picture of the desktop.

Open Workload

  1. Select File » Open From GLSL Reference Library » from the main menu.

    The software displays the reference library document selector.

    This is a picture of the reference library document selector.
  2. Select 430 for the GLSL version.
  3. Select sampler2D for the sampler type.
  4. Click OK or hit ENTER when you are finished.

    The software displays the open dialog. There is a single file named sampler2D.box contained in the folder.

    This is a picture of the open dialog.
  5. Double click the file named sampler2D.box to open the file.

    The reference document appears.

    This is a picture of the reference document.

    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!

Export The Workload

  1. Examine the main menu and select Export » Windows 64-Bit from the main menu.
  2. The software displays the export dialog. This is a picture of the exporter dialog.
  3. Click OK or hit ENTER to export the workload.

    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.

    This is a picture of a folder containing the exported document.
  4. Examine the folder and find the file named sampler2D.sln.
  5. Double click the solution to open it in Visual Studio. This is a picture of the solution opened in Visual Studio.
  6. Examine the solution explorer on the upper left side of the interface.
  7. Right click over the solution root named Solution 'sampler2D' (1 project) and select Build Solution from the listed options.

    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.)

    This is a picture of the solution being built in Visual Studio.

    The solution takes a few minutes to compile and link. Proceed to the next step when the build is complete.

  8. Select Debug » Start Debugging from the main menu or hit F5 to run the exported application. This is a picture of the workload being executed in a custom OpenGL application.

    This shows your OpenGL workload running in real-time.

  9. Hit ESC to close the window.

    This is the basic process that you'll use every time you export a workload from the Layout application.

  10. Close Visual Studio.
  11. Return to the running Layout application.
  12. Examine the output window at the bottom of the workspace.

    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.
    
  13. Close the Layout application without saving changes.

    This exercise is complete.