summaryrefslogtreecommitdiff
path: root/testdata/gfx04.out
blob: 701fe19f9549cf49b46f2b459467179e294d443d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Pipeline
  { info = ""
  , backend = OpenGL33
  , textures = []
  , samplers = []
  , targets =
      [ RenderTarget
          { renderTargets =
              [ TargetItem
                  { targetSemantic = Depth , targetRef = Just (Framebuffer Depth) }
              , TargetItem
                  { targetSemantic = Color , targetRef = Just (Framebuffer Color) }
              ]
          }
      ]
  , programs =
      [ Program
          { programUniforms = fromList [ ( "MVP" , M44F ) ]
          , programStreams =
              fromList
                [ ( "vi1" , Parameter { name = "position" , ty = V3F } )
                , ( "vi2" , Parameter { name = "normal" , ty = V3F } )
                ]
          , programInTextures = fromList []
          , programOutput = [ Parameter { name = "f0" , ty = V4F } ]
          , vertexShader =
              """
              #version 330 core
              vec4 texture2D(sampler2D s,vec2 uv) {
                  return texture(s,uv);
              }
              uniform mat4 MVP;
              in vec3 vi1;
              in vec3 vi2;
              smooth out vec4 vo1;
              vec4 v3FToV4F(vec3 z0) {
                  return vec4 ((z0).x,(z0).y,(z0).z,1.0);
              }
              void main() {
                  gl_Position = (MVP) * (v3FToV4F (vi1));
                  vo1 = v3FToV4F (vi2);
              }
              """
          , geometryShader = Nothing
          , fragmentShader =
              """
              #version 330 core
              vec4 texture2D(sampler2D s,vec2 uv) {
                  return texture(s,uv);
              }
              smooth in vec4 vo1;
              out vec4 f0;
              void main() {
                  f0 = (vo1) * (vec4 (1.0,1.4,1.0,0.6));
              }
              """
          }
      ]
  , slots =
      [ Slot
          { slotName = "stream"
          , slotStreams =
              fromList [ ( "normal" , V3F ) , ( "position" , V3F ) ]
          , slotUniforms = fromList [ ( "MVP" , M44F ) ]
          , slotPrimitive = Triangles
          , slotPrograms = [ 0 ]
          }
      ]
  , streams = []
  , commands =
      [ SetRenderTarget 0
      , ClearRenderTarget
          [ ClearImage { imageSemantic = Depth , clearValue = VFloat 1000.0 }
          , ClearImage
              { imageSemantic = Color , clearValue = VV4F (V4 0.5 0.0 0.4 1.0) }
          ]
      , SetProgram 0
      , SetRasterContext
          (TriangleCtx CullNone PolygonFill NoOffset LastVertex)
      , SetAccumulationContext
          AccumulationContext
            { accViewportName = Nothing
            , accOperations =
                [ DepthOp Less False
                , ColorOp
                    Blend
                      { colorEqSrc = FuncAdd
                      , alphaEqSrc = FuncAdd
                      , colorFSrc = SrcAlpha
                      , colorFDst = OneMinusSrcAlpha
                      , alphaFSrc = SrcAlpha
                      , alphaFDst = OneMinusSrcAlpha
                      , color = V4 1.0 1.0 1.0 1.0
                      }
                    (VV4B (V4 True True True True))
                ]
            }
      , RenderSlot 0
      ]
  }