public static void RenderElements() { UIShader.Use(); UIShader.Projection.Set(ProjectionMatrix); VAO.Bind(); VBO.Init(OpenTK.Graphics.OpenGL.BufferTarget.ArrayBuffer, VertexList.ToArray()); foreach (var spriteGroup in SpritesToRender.GroupBy(x => x.Texture)) { spriteGroup.Key.Bind(OpenTK.Graphics.OpenGL.TextureUnit.Texture1); UIShader.Texture.BindTexture(OpenTK.Graphics.OpenGL.TextureUnit.Texture1, spriteGroup.Key); foreach (var sprite in spriteGroup) { UIShader.Opacity.Set(sprite.Opacity); VAO.DrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType.Quads, sprite.Offset, sprite.ElemCount); } } if (Freetype6Loaded) { TextRenderer.RefreshBuffers(); TextRenderer.Draw(); TextRenderer.DisableShader(); } }
public static void InitializeResources() { if (Freetype6Loaded) { var builderConfig = new QFontBuilderConfiguration(true) { ShadowConfig = { BlurRadius = 2, BlurPasses = 1, Type = ShadowType.Blurred }, TextGenerationRenderHint = TextGenerationRenderHint.ClearTypeGridFit, Characters = CharacterSet.General | CharacterSet.Japanese | CharacterSet.Thai | CharacterSet.Cyrillic }; NormalFont = new QFont("C:\\Windows\\Fonts\\segoeui.ttf", 10, builderConfig); SmallFont = new QFont("C:\\Windows\\Fonts\\segoeui.ttf", 8, builderConfig); MonoFont = new QFont("C:\\Windows\\Fonts\\consola.ttf", 10, builderConfig); TextRenderer = new QFontDrawing(); } UIShader = ProgramFactory.Create <UIShaderProgram>(); UIShader.Use(); UIShader.Opacity.Set(1f); }
public static void ReleaseResources() { VBO?.Dispose(); VAO?.Dispose(); NormalFont?.Dispose(); SmallFont?.Dispose(); TextRenderer?.Dispose(); UIShader?.Dispose(); NormalFont?.Dispose(); SmallFont?.Dispose(); MonoFont?.Dispose(); }
public UIRender(Renderbuffer renderBuffer) { this._screenSize = renderBuffer.Size; _context = GL.GetCurrent(true); _shader = new UIShader(); _renderBuffer = renderBuffer; _framebuffer = new Framebuffer(_screenSize); _framebuffer.AttachRenderbuffer(FramebufferAttachment.ColorAttachment0, renderBuffer); _idTexture = _framebuffer.AddColorTexture(Core.FramebufferAttachment.ColorAttachment1, PixelInternalFormat.R32ui, PixelFormat.Red); _framebuffer.CheckStatus(true); }
public static void InitializeResources() { NormalFont = new QFont("C:\\Windows\\Fonts\\segoeui.ttf", 10, new QFontBuilderConfiguration(true)); SmallFont = new QFont("C:\\Windows\\Fonts\\segoeui.ttf", 8, new QFontBuilderConfiguration(true)); MonoFont = new QFont("C:\\Windows\\Fonts\\consola.ttf", 10, new QFontBuilderConfiguration(true)); TextRenderer = new QFontDrawing(); UIShader = ProgramFactory.Create <UIShaderProgram>(); UIShader.Use(); UIShader.Opacity.Set(1f); VAO = new VertexArray(); VBO = new Buffer <VertVT>(); VAO.Bind(); VAO.BindAttribute(UIShader.Position, VBO); VAO.BindAttribute(UIShader.TexCoord, VBO, 12); }
// void GetShader(){ // if(customShader != null){ // shader = customShader; // } // else{ // shader = GetShader( uiShader ); // Debug.Log(shader); // } // if(shader == null){ // Debug.Log(customShader + " : " + uiShader); // } // } private static Shader GetShader(UIShader shade) { switch (shade) { case UIShader.Normal: default: return(Shader.Find("GUI/Normal")); case UIShader.Normal8Bit: return(Shader.Find("GUI/Normal-8Bit")); case UIShader.Additive: return(Shader.Find("GUI/Additive")); case UIShader.Multiplicative: return(Shader.Find("GUI/Multiplicative")); case UIShader.Additive8Bit: return(Shader.Find("GUI/Additive-8Bit")); case UIShader.Multiplicative8Bit: return(Shader.Find("GUI/Multiplicative-8Bit")); case UIShader.DepthMask: return(Shader.Find("Masked/Mask")); case UIShader.NormalSolid: return(Shader.Find("GUI/Normal-Solid")); case UIShader.DepthMaskCutout: return(Shader.Find("Masked/Mask-Cutout")); case UIShader.MultiplicativeDouble: return(Shader.Find("GUI/MultiplicativeDouble")); } }
// void GetShader(){ // if(customShader != null){ // shader = customShader; // } // else{ // shader = GetShader( uiShader ); // Debug.Log(shader); // } // if(shader == null){ // Debug.Log(customShader + " : " + uiShader); // } // } private static Shader GetShader(UIShader shade){ switch(shade){ case UIShader.Normal: default: return Shader.Find("GUI/Normal"); case UIShader.Normal8Bit: return Shader.Find("GUI/Normal-8Bit"); case UIShader.Additive: return Shader.Find("GUI/Additive"); case UIShader.Multiplicative: return Shader.Find("GUI/Multiplicative"); case UIShader.Additive8Bit: return Shader.Find("GUI/Additive-8Bit"); case UIShader.Multiplicative8Bit: return Shader.Find("GUI/Multiplicative-8Bit"); case UIShader.DepthMask: return Shader.Find("Masked/Mask"); case UIShader.NormalSolid: return Shader.Find("GUI/Normal-Solid"); case UIShader.DepthMaskCutout: return Shader.Find("Masked/Mask-Cutout"); case UIShader.MultiplicativeDouble: return Shader.Find("GUI/MultiplicativeDouble"); } }