1 // SwiftShader Software Renderer
\r
3 // Copyright(c) 2005-2011 TransGaming Inc.
\r
5 // All rights reserved. No part of this software may be copied, distributed, transmitted,
\r
6 // transcribed, stored in a retrieval system, translated into any human or computer
\r
7 // language by any means, or disclosed to third parties without the explicit written
\r
8 // agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express
\r
9 // or implied, including but not limited to any patent rights, are granted to you.
\r
12 #ifndef sw_ShaderCore_hpp
\r
13 #define sw_ShaderCore_hpp
\r
15 #include "Shader.hpp"
\r
16 #include "Reactor/Reactor.hpp"
\r
22 typedef Shader::Instruction::Operation::Control Control;
\r
23 typedef Shader::Instruction::Operation Op;
\r
26 void mov(Color4f &dst, Color4f &src, bool floorToInteger = false);
\r
27 void add(Color4f &dst, Color4f &src0, Color4f &src1);
\r
28 void sub(Color4f &dst, Color4f &src0, Color4f &src1);
\r
29 void mad(Color4f &dst, Color4f &src0, Color4f &src1, Color4f &src2);
\r
30 void mul(Color4f &dst, Color4f &src0, Color4f &src1);
\r
31 void rcp(Color4f &dst, Color4f &src, bool pp = false);
\r
32 void rsq(Color4f &dst, Color4f &src, bool pp = false);
\r
33 void dp3(Color4f &dst, Color4f &src0, Color4f &src1);
\r
34 void dp4(Color4f &dst, Color4f &src0, Color4f &src1);
\r
35 void min(Color4f &dst, Color4f &src0, Color4f &src1);
\r
36 void max(Color4f &dst, Color4f &src0, Color4f &src1);
\r
37 void slt(Color4f &dst, Color4f &src0, Color4f &src1);
\r
38 void sge(Color4f &dst, Color4f &src0, Color4f &src1);
\r
39 void exp(Color4f &dst, Color4f &src, bool pp = false);
\r
40 void log(Color4f &dst, Color4f &src, bool pp = false);
\r
41 void lit(Color4f &dst, Color4f &src);
\r
42 void dst(Color4f &dst, Color4f &src0, Color4f &src1);
\r
43 void lrp(Color4f &dst, Color4f &src0, Color4f &src1, Color4f &src2);
\r
44 void frc(Color4f &dst, Color4f &src);
\r
45 void pow(Color4f &dst, Color4f &src0, Color4f &src1, bool pp = false);
\r
46 void crs(Color4f &dst, Color4f &src0, Color4f &src1);
\r
47 void sgn(Color4f &dst, Color4f &src);
\r
48 void abs(Color4f &dst, Color4f &src);
\r
49 void nrm(Color4f &dst, Color4f &src, bool pp = false);
\r
50 void sincos(Color4f &dst, Color4f &src, bool pp = false);
\r
51 void expp(Color4f &dst, Color4f &src, unsigned short version);
\r
52 void logp(Color4f &dst, Color4f &src, unsigned short version);
\r
53 void cmp(Color4f &dst, Color4f &src0, Color4f &src1, Color4f &src2);
\r
54 void dp2add(Color4f &dst, Color4f &src0, Color4f &src1, Color4f &src2);
\r
55 void setp(Color4f &dst, Color4f &src0, Color4f &src1, Control control);
\r
58 void sgn(Float4 &dst, Float4 &src);
\r
59 void cmp(Float4 &dst, Float4 &src0, Float4 &src1, Float4 &src2);
\r
63 #endif // sw_ShaderCore_hpp
\r