summaryrefslogtreecommitdiff
path: root/testdata/graphics-features/pickInt.out
blob: 8812744ef279ed90c8d0e9e03a75a7e2bae02716 (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
101
102
103
104
105
106
107
108
109
110
111
Pipeline
  { info = ""
  , backend = OpenGL33
  , textures =
      [ TextureDescriptor
          { textureType = Texture2D (IntT RGBA) 1
          , textureSize = VV2U (V2 800 600)
          , textureSemantic = Color
          , textureSampler =
              SamplerDescriptor
                { samplerWrapS = Repeat
                , samplerWrapT = Just Repeat
                , samplerWrapR = Nothing
                , samplerMinFilter = Nearest
                , samplerMagFilter = Nearest
                , samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0)
                , samplerMinLod = Nothing
                , samplerMaxLod = Nothing
                , samplerLodBias = 0.0
                , samplerCompareFunc = Nothing
                }
          , textureBaseLevel = 0
          , textureMaxLevel = 0
          }
      ]
  , samplers = []
  , targets =
      [ RenderTarget
          { renderTargets =
              [ TargetItem
                  { targetSemantic = Color
                  , targetRef = Just (TextureImage 0 0 Nothing)
                  }
              ]
          }
      ]
  , programs =
      [ Program
          { programUniforms = fromList [ ( "viewProj" , M44F ) ]
          , programStreams =
              fromList
                [ ( "vi1" , Parameter { name = "position" , ty = V3F } )
                , ( "vi2" , Parameter { name = "color" , ty = V4F } )
                , ( "vi3" , Parameter { name = "id" , ty = Int } )
                ]
          , programInTextures = fromList []
          , programOutput = [ Parameter { name = "f0" , ty = V4I } ]
          , vertexShader =
              """
              #version 330 core
              vec4 texture2D(sampler2D s,vec2 uv) {
                  return texture(s,uv);
              }
              uniform mat4 viewProj;
              in vec3 vi1;
              in vec4 vi2;
              in int vi3;
              flat out vec2 vo1;
              flat out ivec4 vo2;
              void main() {
                  gl_Position = (viewProj) * (vec4 ((vi1).x,(vi1).y,0.0,1.0));
                  vo1 = vec2 (0.0,0.0);
                  vo2 = ivec4 (0,0,0,vi3);
              }
              """
          , geometryShader = Nothing
          , fragmentShader =
              """
              #version 330 core
              vec4 texture2D(sampler2D s,vec2 uv) {
                  return texture(s,uv);
              }
              flat in vec2 vo1;
              flat in ivec4 vo2;
              out ivec4 f0;
              void main() {
                  f0 = vo2;
              }
              """
          }
      ]
  , slots =
      [ Slot
          { slotName = "objects"
          , slotStreams =
              fromList
                [ ( "color" , V4F ) , ( "id" , Int ) , ( "position" , V3F ) ]
          , slotUniforms = fromList [ ( "viewProj" , M44F ) ]
          , slotPrimitive = Triangles
          , slotPrograms = [ 0 ]
          }
      ]
  , streams = []
  , commands =
      [ SetRenderTarget 0
      , ClearRenderTarget
          [ ClearImage
              { imageSemantic = Color , clearValue = VV4I (V4 0 0 0 0) }
          ]
      , SetProgram 0
      , SetRasterContext
          (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex)
      , SetAccumulationContext
          AccumulationContext
            { accViewportName = Nothing
            , accOperations =
                [ ColorOp NoBlending (VV4B (V4 True True True True)) ]
            }
      , RenderSlot 0
      ]
  }