PostFX.cpp

00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024 
00026 // Headers
00028 #include <SFML/Graphics/PostFX.h>
00029 #include <SFML/Graphics/PostFX.hpp>
00030 #include <SFML/Internal.h>
00031 
00032 
00033 // WARNING : this structure must always be the SAME as in Graphics/Image.h
00034 struct sfImage
00035 {
00036     sf::Image This;
00037 };
00038 struct sfPostFX
00039 {
00040     sf::PostFX This;
00041 };
00042 
00043 
00047 sfPostFX* sfPostFX_CreateFromFile(const char* Filename)
00048 {
00049     sfPostFX* PostFX = new sfPostFX;
00050 
00051     if (!PostFX->This.LoadFromFile(Filename))
00052     {
00053         delete PostFX;
00054         PostFX = NULL;
00055     }
00056 
00057     return PostFX;
00058 }
00059 
00060 
00064 sfPostFX* sfPostFX_CreateFromMemory(const char* Effect)
00065 {
00066     sfPostFX* PostFX = new sfPostFX;
00067 
00068     if (!PostFX->This.LoadFromMemory(Effect))
00069     {
00070         delete PostFX;
00071         PostFX = NULL;
00072     }
00073 
00074     return PostFX;
00075 }
00076 
00077 
00081 void sfPostFX_Destroy(sfPostFX* PostFX)
00082 {
00083     delete PostFX;
00084 }
00085 
00086 
00090 void sfPostFX_SetParameter1(sfPostFX* PostFX, const char* Name, float X)
00091 {
00092     CSFML_CALL(PostFX, SetParameter(Name, X))
00093 }
00094 
00095 
00099 void sfPostFX_SetParameter2(sfPostFX* PostFX, const char* Name, float X, float Y)
00100 {
00101     CSFML_CALL(PostFX, SetParameter(Name, X, Y))
00102 }
00103 
00104 
00108 void sfPostFX_SetParameter3(sfPostFX* PostFX, const char* Name, float X, float Y, float Z)
00109 {
00110     CSFML_CALL(PostFX, SetParameter(Name, X, Y, Z))
00111 }
00112 
00113 
00117 void sfPostFX_SetParameter4(sfPostFX* PostFX, const char* Name, float X, float Y, float Z, float W)
00118 {
00119     CSFML_CALL(PostFX, SetParameter(Name, X, Y, Z, W))
00120 }
00121 
00122 
00126 void sfPostFX_SetTexture(sfPostFX* PostFX, const char* Name, sfImage* Texture)
00127 {
00128     CSFML_CALL(PostFX, SetTexture(Name, Texture ? &Texture->This : NULL))
00129 }
00130 
00131 
00135 sfBool sfPostFX_CanUsePostFX()
00136 {
00137     return sf::PostFX::CanUsePostFX() ? sfTrue : sfFalse;
00138 }