Free Electron
ShaderVariablesI.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __shade_ShaderVariablesI_h__
8 #define __shade_ShaderVariablesI_h__
9 namespace fe
10 {
11 namespace ext
12 {
13 
14 /**************************************************************************//**
15  @brief Surface Variable Access
16 
17  @ingroup shade
18 *//***************************************************************************/
19 class FE_DL_EXPORT ShaderVariablesI:
20  virtual public Component
21 {
22  public:
23 
24  //* read from input
25 virtual String string(I32 a_channel) const =0;
26 virtual I32 integer(I32 a_channel) const =0;
27 virtual Real real(I32 a_channel) const =0;
28 virtual SpatialVector spatialVector(I32 a_channel) const =0;
29 virtual Color color(I32 a_channel) const =0;
30 
31  //* write to output
32 virtual void set(String a_string) =0;
33 virtual void set(I32 a_integer) =0;
34 virtual void set(Real a_real) =0;
35 virtual void set(SpatialVector a_spatialVector) =0;
36 virtual void set(Color a_color) =0;
37 };
38 
39 } /* namespace ext */
40 } /* namespace fe */
41 
42 #endif /* __shade_ShaderVariablesI_h__ */
Surface Variable Access.
Definition: ShaderVariablesI.h:19
kernel
Definition: namespace.dox:3
Special vector for color (RGBA)
Definition: Color.h:21
Automatically reference-counted string container.
Definition: String.h:128
Base for all interfacable components.
Definition: Component.h:20