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
00034 {
00035 namespace priv
00036 {
00040 GraphicsDevice::GraphicsDevice()
00041 {
00042
00043 }
00044
00045
00049 GraphicsDevice::~GraphicsDevice()
00050 {
00051
00052 std::for_each(myResources.begin(), myResources.end(), std::mem_fun(&VideoResource::DestroyVideoResources));
00053 }
00054
00055
00059 GraphicsDevice& GraphicsDevice::GetInstance()
00060 {
00061 static GraphicsDevice Instance;
00062
00063 return Instance;
00064 }
00065
00066
00070 void GraphicsDevice::AddVideoResource(VideoResource* Resource)
00071 {
00072 if (Resource)
00073 myResources.insert(Resource);
00074 }
00075
00076
00080 void GraphicsDevice::RemoveVideoResource(VideoResource* Resource)
00081 {
00082 if (Resource)
00083 myResources.erase(Resource);
00084 }
00085
00086 }
00087
00088 }