blob: 3bfc0f4b48bb3f138864c4bd838e345180d7b1dd [file] [log] [blame]
John Bauman19bac1e2014-05-06 15:23:49 -04001// SwiftShader Software Renderer
2//
3// Copyright(c) 2005-2012 TransGaming Inc.
4//
5// All rights reserved. No part of this software may be copied, distributed, transmitted,
6// transcribed, stored in a retrieval system, translated into any human or computer
7// language by any means, or disclosed to third parties without the explicit written
8// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express
9// or implied, including but not limited to any patent rights, are granted to you.
10//
11
12#ifndef sw_VertexShader_hpp
13#define sw_VertexShader_hpp
14
15#include "Shader.hpp"
16
17namespace sw
18{
19 class VertexShader : public Shader
20 {
21 public:
22 explicit VertexShader(const VertexShader *vs = 0);
23 explicit VertexShader(const unsigned long *token);
24
25 virtual ~VertexShader();
26
27 static int validate(const unsigned long *const token); // Returns number of instructions if valid
28 bool containsTexldl() const;
29
30 virtual void analyze();
31
32 int positionRegister; // FIXME: Private
33 int pointSizeRegister; // FIXME: Private
34
35 Semantic input[16]; // FIXME: Private
36 Semantic output[12][4]; // FIXME: Private
37
38 private:
39 void analyzeInput();
40 void analyzeOutput();
41 void analyzeTexldl();
42
43 bool texldl;
44 };
45}
46
47#endif // sw_VertexShader_hpp