- BurningVideo: 0.50
- 10 year anniversary update - Lighting model reworked. moved to eyespace like openGL. [Specular Highlights, Fog, Sphere/Reflection Map] - increased internal s4DVertex to support 4 Textures and 4 Colors [switchable] - Textures are handled as sRGB during Mipmap Generation. More accurate, less visual disruption - 2D is drawn as 3D like hardware drivers. [switchable]. enables viewport scaling, material2D - Texture Spatial Resolution Limiting working. [lower memory consumption,SOFTWARE_DRIVER_2_TEXTURE_MAXSIZE] - SuperTuxKart 8.0.1 playable git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6086 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
164
source/Irrlicht/burning_shader_compile_fragment_default.h
Normal file
164
source/Irrlicht/burning_shader_compile_fragment_default.h
Normal file
@@ -0,0 +1,164 @@
|
||||
|
||||
|
||||
class burning_shader_class : public IBurningShader
|
||||
{
|
||||
public:
|
||||
|
||||
//! constructor
|
||||
burning_shader_class(CBurningVideoDriver* driver);
|
||||
|
||||
//! draws an indexed triangle list
|
||||
virtual void drawTriangle(const s4DVertex* burning_restrict a, const s4DVertex* burning_restrict b, const s4DVertex* burning_restrict c) _IRR_OVERRIDE_;
|
||||
virtual bool canWireFrame() { return true; }
|
||||
|
||||
virtual void OnSetMaterial(const SBurningShaderMaterial& material) _IRR_OVERRIDE_;
|
||||
|
||||
private:
|
||||
|
||||
// fragment shader
|
||||
typedef void (burning_shader_class::*tFragmentShader) ();
|
||||
void fragment_depth_less_equal_depth_write_blend_one_zero();
|
||||
void fragment_depth_less_equal_no_depth_write_blend_one_zero();
|
||||
void fragment_nodepth_perspective_blend_one_zero();
|
||||
void fragment_nodepth_noperspective_blend_one_zero(); // 2D Gradient
|
||||
|
||||
void fragment_depth_less_equal_depth_write_blend_src_alpha_one_minus_src_alpha();
|
||||
void fragment_depth_less_equal_no_depth_write_blend_src_alpha_one_minus_src_alpha();
|
||||
void fragment_nodepth_perspective_blend_src_alpha_one_minus_src_alpha();
|
||||
void fragment_nodepth_noperspective_blend_src_alpha_one_minus_src_alpha();
|
||||
|
||||
|
||||
tFragmentShader fragmentShader;
|
||||
|
||||
};
|
||||
|
||||
|
||||
//! constructor
|
||||
burning_shader_class::burning_shader_color(CBurningVideoDriver* driver)
|
||||
: IBurningShader(driver)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
setDebugName(burning_stringify(burning_shader_class) );
|
||||
#endif
|
||||
|
||||
fragmentShader = &burning_shader_class::fragment_depth_less_equal_depth_write_blend_one_zero;
|
||||
|
||||
}
|
||||
|
||||
|
||||
IBurningShader* burning_create(burning_shader_class)(CBurningVideoDriver* driver)
|
||||
{
|
||||
return new burning_shader_class(driver);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// compile flag for this triangle
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define SUBTEXEL
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define USE_ZBUFFER
|
||||
#define CMP_W
|
||||
#include "burning_shader_compile_triangle.h"
|
||||
|
||||
// compile flag for this scanline fragment
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_nodepth_noperspective_blend_one_zero
|
||||
#define SUBTEXEL
|
||||
#define IPOL_C0
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_nodepth_perspective_blend_one_zero
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_depth_less_equal_no_depth_write_blend_one_zero
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define USE_ZBUFFER
|
||||
#define CMP_W
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_depth_less_equal_depth_write_blend_one_zero
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define USE_ZBUFFER
|
||||
#define CMP_W
|
||||
#define WRITE_W
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
|
||||
// compile flag for this scanline fragment
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_nodepth_noperspective_blend_src_alpha_one_minus_src_alpha
|
||||
#define SUBTEXEL
|
||||
#define IPOL_C0
|
||||
#define IPOL_A0
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_nodepth_perspective_blend_src_alpha_one_minus_src_alpha
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define IPOL_A0
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_depth_less_equal_no_depth_write_blend_src_alpha_one_minus_src_alpha
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define IPOL_A0
|
||||
#define USE_ZBUFFER
|
||||
#define CMP_W
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
||||
|
||||
#include "burning_shader_compile_start.h"
|
||||
#define burning_shader_fragment fragment_depth_less_equal_depth_write_blend_src_alpha_one_minus_src_alpha
|
||||
#define SUBTEXEL
|
||||
#define INVERSE_W
|
||||
#define IPOL_W
|
||||
#define IPOL_C0
|
||||
#define IPOL_A0
|
||||
#define USE_ZBUFFER
|
||||
#define CMP_W
|
||||
#define WRITE_W
|
||||
#define INVERSE_W_RANGE FIX_POINT_F32_MUL*COLOR_MAX
|
||||
#include "burning_shader_compile_fragment_start.h"
|
||||
#include burning_shader_frag
|
||||
#include "burning_shader_compile_fragment_end.h"
|
Reference in New Issue
Block a user