Exemple #1
0
        public VertexShader(string filePath)
        {
            FilePath   = filePath;
            SourceCode = File.ReadAllText(FilePath);

            VertexShaderObjectHandle = SDL_gpu.GPU_CompileShader(SDL_gpu.GPU_ShaderEnum.GPU_VERTEX_SHADER, SourceCode);

            if (VertexShaderObjectHandle == 0)
            {
                throw new ShaderException("Compilation failed.", SDL_gpu.GPU_GetShaderMessage());
            }

            CompileAndSetDefaultPixelShader();
            if (PixelShaderObjectHandle == 0)
            {
                throw new ShaderException(
                          "Default Chroma pixel shader compilation failed. " +
                          "Report an issue - be sure to include GLSL errors or I'll f**k you up just like I did with this framework.", SDL_gpu.GPU_GetShaderMessage());
            }

            ProgramHandle = SDL_gpu.GPU_LinkShaders(PixelShaderObjectHandle, VertexShaderObjectHandle);

            if (ProgramHandle == 0)
            {
                throw new ShaderException("Linkage failed.", SDL_gpu.GPU_GetShaderMessage());
            }

            CreateShaderBlock();
        }
Exemple #2
0
        private void TryCompileVertexShader()
        {
            VertexShaderSourceCode   = File.ReadAllText(VertexShaderFilePath);
            VertexShaderObjectHandle = SDL_gpu.GPU_CompileShader(SDL_gpu.GPU_ShaderEnum.GPU_VERTEX_SHADER, VertexShaderSourceCode);

            if (VertexShaderObjectHandle == 0)
            {
                throw new ShaderException("Vertex shader compilation failed.", SDL_gpu.GPU_GetShaderMessage());
            }
        }
Exemple #3
0
        private void TryCompilePixelShader()
        {
            PixelShaderSourceCode   = File.ReadAllText(PixelShaderFilePath);
            PixelShaderObjectHandle = SDL_gpu.GPU_CompileShader(SDL_gpu.GPU_ShaderEnum.GPU_PIXEL_SHADER, PixelShaderSourceCode);

            if (PixelShaderObjectHandle == 0)
            {
                throw new ShaderException("Pixel shader compilation failed.", SDL_gpu.GPU_GetShaderMessage());
            }
        }
Exemple #4
0
        protected virtual void CompileAndSetDefaultPixelShader()
        {
            EnsureNotDisposed();

            var shaderSourceStream = Assembly.GetExecutingAssembly()
                                     .GetManifestResourceStream("Chroma.Resources.shader.default.frag");

            using var sr            = new StreamReader(shaderSourceStream !);
            PixelShaderObjectHandle =
                SDL_gpu.GPU_CompileShader(SDL_gpu.GPU_ShaderEnum.GPU_PIXEL_SHADER, sr.ReadToEnd());
        }
Exemple #5
0
        protected void CompileAndSetDefaultVertexShader()
        {
            EnsureNotDisposed();

            var shaderSourceStream = Assembly.GetExecutingAssembly()
                                     .GetManifestResourceStream("Chroma.Resources.shader.default.vert");

            using var sr             = new StreamReader(shaderSourceStream);
            VertexShaderObjectHandle =
                SDL_gpu.GPU_CompileShader(SDL_gpu.GPU_ShaderEnum.GPU_VERTEX_SHADER, sr.ReadToEnd());
        }