00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00026
00028 #include <SFML/Graphics/GraphicsDevice.hpp>
00029 #include <SFML/Graphics/VideoResource.hpp>
00030 #include <algorithm>
00031
00032
00033 namespace sf_private
00034 {
00038 sfGraphicsDevice::sfGraphicsDevice()
00039 {
00040
00041 }
00042
00043
00047 sfGraphicsDevice::~sfGraphicsDevice()
00048 {
00049
00050 std::for_each(myResources.begin(), myResources.end(), std::mem_fun(&sfVideoResource::DestroyVideoResources));
00051 }
00052
00053
00057 sfGraphicsDevice& sfGraphicsDevice::GetInstance()
00058 {
00059 static sfGraphicsDevice Instance;
00060
00061 return Instance;
00062 }
00063
00064
00068 void sfGraphicsDevice::AddVideoResource(sfVideoResource* Resource)
00069 {
00070 if (Resource)
00071 myResources.insert(Resource);
00072 }
00073
00074
00078 void sfGraphicsDevice::RemoveVideoResource(sfVideoResource* Resource)
00079 {
00080 if (Resource)
00081 myResources.erase(Resource);
00082 }
00083
00084 }