00001 /* -*- C++ -*- */ 00002 00003 /* COPYRIGHT 00004 * 00005 * This file is part of the Visual Effects Engine - VEE 00006 * 00007 * Read the "VEE-LICENSE" file for the license. 00008 * 00009 * Authors & Copyright: 00010 * 00011 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00012 * Janne Kontkanen 2001-2004 00013 * 00014 * Additional copyrights: Tekes 2003-2004 00015 * 00016 * firstname.lastname@hut.fi 00017 * 00018 */ 00019 00020 #ifndef VEE_RENDERER_H 00021 #define VEE_RENDERER_H 00022 00023 #include <vee_has_values.h> 00024 00025 class VEE_ForceObject; 00026 class VEE_Particle; 00027 class VEE_Polygon; 00028 00031 enum VEE_Blending { 00033 VEE_BLEND_NEW, 00035 VEE_BLEND_ADDITIVE, 00037 VEE_BLEND_SUBTRACTIVE, 00039 VEE_BLEND_USUAL 00040 }; 00041 00044 class VEE_Renderer : public VEE_HasValues 00045 { 00046 public: 00047 VEE_Renderer() {} 00048 virtual ~VEE_Renderer() {} 00049 00050 virtual void initRenderState() = 0; 00051 virtual void closeRenderState() = 0; 00052 00053 virtual void renderParticle(VEE_Particle *) = 0; 00054 virtual void renderPolygon(VEE_Polygon *) = 0; 00055 virtual void renderForceObject(VEE_ForceObject *) = 0; 00056 }; 00057 00058 #endif