public bool CheckForShaderChange() { //test if we even have file -> no files nothing to be done if (ReferenceEquals(null, shaderWatcherVertex) || ReferenceEquals(null, shaderWatcherFragment)) { return(false); } //test if any file is dirty if (!shaderWatcherVertex.Dirty && !shaderWatcherFragment.Dirty) { return(false); } try { shader = ShaderLoader.FromFiles(shaderWatcherVertex.FullPath, shaderWatcherFragment.FullPath); shaderWatcherVertex.Dirty = false; shaderWatcherFragment.Dirty = false; //ShaderLoaded?.Invoke(); return(true); } catch (IOException e) { var exception = new ShaderException(e.Message, string.Empty); ShowDebugDialog(exception); } catch (ShaderException e) { ShowDebugDialog(e); } return(false); }
public MainVisual() { shader = ShaderLoader.FromFiles(@"..\..\vertex.glsl", @"..\..\fragment.glsl"); geometry = CreateMesh(shader); CreatePerInstanceAttributes(geometry, shader); GL.Enable(EnableCap.DepthTest); }
public MainVisual() { const string path = "../../"; const string pathMedia = path + "media/"; shader = ShaderLoader.FromFiles(path + "vertex.glsl", path + "fragment.glsl"); //load geometry Mesh mesh = Obj2Mesh.FromObj(pathMedia + "suzanne.obj"); geometry.SetAttribute(shader.GetAttributeLocation("position"), mesh.positions.ToArray(), VertexAttribPointerType.Float, 3); geometry.SetAttribute(shader.GetAttributeLocation("normal"), mesh.normals.ToArray(), VertexAttribPointerType.Float, 3); //geometry.SetAttribute(shader.GetAttributeLocation("uv"), mesh.uvs.ToArray(), VertexAttribPointerType.Float, 2); geometry.SetID(mesh.ids.ToArray(), PrimitiveType.Triangles); GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line); //draw wireframe //texDiffuse = TextureLoader.FromFile(pathMedia + "capsule0.jpg"); }
private void LoadShader() { shader = ShaderLoader.FromFiles(@"..\..\vertex.glsl", @"..\..\fragment.glsl"); }
public ResourceVertFragShaderFile(string sVertexShdFile_, string sFragmentShdFile_) { shader = ShaderLoader.FromFiles(sVertexShdFile_, sFragmentShdFile_); }