Mercurial > games > semicongine
view examples/E01_hello_triangle.nim @ 1133:a52e924e5666
add: function to generate circle-mesh data (not mesh object)
author | sam <sam@basx.dev> |
---|---|
date | Sun, 02 Jun 2024 16:21:52 +0700 |
parents | d6c27f0ed3e4 |
children | 71315636ba82 |
line wrap: on
line source
import std/tables import ../semicongine # shader setup const shaderConfiguration = createShaderConfiguration( name = "default shader", inputs = [ attr[Vec3f]("position"), attr[Vec4f]("color"), ], intermediates = [attr[Vec4f]("outcolor")], outputs = [attr[Vec4f]("color")], vertexCode = "gl_Position = vec4(position, 1.0); outcolor = color;", fragmentCode = "color = outcolor;", ) # scene setup var scene = Scene(name: "scene", meshes: @[newMesh( positions = [newVec3f(-0.5, 0.5), newVec3f(0, -0.5), newVec3f(0.5, 0.5)], colors = [newVec4f(1, 0, 0, 1), newVec4f(0, 1, 0, 1), newVec4f(0, 0, 1, 1)], material = VERTEX_COLORED_MATERIAL.initMaterialData() )] ) myengine = initEngine("Hello triangle", showFps = true) myengine.initRenderer({VERTEX_COLORED_MATERIAL: shaderConfiguration}, inFlightFrames = 2) myengine.loadScene(scene) while myengine.UpdateInputs() and not KeyWasPressed(Escape): transform[Vec3f](scene.meshes[0][], "position", scale(1.001, 1.001)) myengine.renderScene(scene) myengine.destroy()