Exemple #1
0
        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();
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        public static void ReleaseResources()
        {
            VBO?.Dispose();
            VAO?.Dispose();

            NormalFont?.Dispose();
            SmallFont?.Dispose();
            TextRenderer?.Dispose();
            UIShader?.Dispose();

            NormalFont?.Dispose();
            SmallFont?.Dispose();
            MonoFont?.Dispose();
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
    // 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"));
        }
    }
Exemple #7
0
	// 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");		

		}	
	}