Index: trunk/nv/gl/gl_window.hh
===================================================================
--- trunk/nv/gl/gl_window.hh	(revision 342)
+++ trunk/nv/gl/gl_window.hh	(revision 343)
@@ -31,4 +31,7 @@
 		virtual uint16 get_height() const { return m_height; }
 		virtual string get_title() const  { return std::string(); }
+		// TODO : implement?
+		virtual void set_swap_control( bool ) {};
+
 		virtual bool is_event_pending()            { return m_input->is_event_pending(); }
 		virtual bool poll_event( io_event& event ) { return m_input->poll_event( event ); }
Index: trunk/nv/interface/window.hh
===================================================================
--- trunk/nv/interface/window.hh	(revision 342)
+++ trunk/nv/interface/window.hh	(revision 343)
@@ -31,4 +31,6 @@
 		virtual context* get_context() = 0;
 		virtual bool is_event_pending() = 0;
+		// TODO: there should be a general options mechanism
+		virtual void set_swap_control( bool ) = 0;
 		virtual bool poll_event( io_event& event ) = 0;
 		virtual void swap_buffers() = 0;
Index: trunk/nv/sdl/sdl_window.hh
===================================================================
--- trunk/nv/sdl/sdl_window.hh	(revision 342)
+++ trunk/nv/sdl/sdl_window.hh	(revision 343)
@@ -34,4 +34,5 @@
 			virtual uint16 get_height() const { return m_height; }
 			virtual string get_title() const  { return m_title; }
+			virtual void set_swap_control( bool enabled );
 			virtual bool is_event_pending()            { return m_input->is_event_pending(); }
 			virtual bool poll_event( io_event& event ) { return m_input->poll_event( event ); }
Index: trunk/src/sdl/sdl_window.cc
===================================================================
--- trunk/src/sdl/sdl_window.cc	(revision 342)
+++ trunk/src/sdl/sdl_window.cc	(revision 343)
@@ -65,5 +65,5 @@
 	NV_LOG( LOG_INFO, "OpenGL Version      : " << glGetString(GL_VERSION) );
 	NV_LOG( LOG_INFO, "OpenGL GLSL Version : " << glGetString(GL_SHADING_LANGUAGE_VERSION) );
-	//SDL_GL_SetSwapInterval(0);
+	SDL_GL_SetSwapInterval(1);
 
 	// TODO: do we really need this?
@@ -97,2 +97,7 @@
 	SDL_DestroyWindow( static_cast<SDL_Window*>( m_handle ) );
 }
+
+void nv::sdl::window::set_swap_control( bool enabled )
+{
+	SDL_GL_SetSwapInterval( enabled ? 1 : 0 );
+}
