Index: /trunk/nv/gui/gui_environment.hh
===================================================================
--- /trunk/nv/gui/gui_environment.hh	(revision 317)
+++ /trunk/nv/gui/gui_environment.hh	(revision 318)
@@ -30,5 +30,5 @@
 		{
 		public:
-			environment( window* w, const std::string& shader_path = "gui" );
+			environment( window* w );
 			// temporary
 			void load_style( const std::string& filename );
Index: /trunk/nv/gui/gui_renderer.hh
===================================================================
--- /trunk/nv/gui/gui_renderer.hh	(revision 317)
+++ /trunk/nv/gui/gui_renderer.hh	(revision 318)
@@ -44,5 +44,5 @@
 		{
 		public:
-			renderer( window* w, const std::string& shader_path );
+			renderer( window* w );
 			texture_font* get_font( size_t name ) const;
 			vec4 get_image( size_t name ) const;
Index: /trunk/src/gui/gui_environment.cc
===================================================================
--- /trunk/src/gui/gui_environment.cc	(revision 317)
+++ /trunk/src/gui/gui_environment.cc	(revision 318)
@@ -25,5 +25,5 @@
 #include "nv/gfx/texture_atlas.hh"
 
-nv::gui::environment::environment( window* w, const std::string& shader_path )
+nv::gui::environment::environment( window* w )
 	: m_renderer( nullptr ), m_window( w )
 {
@@ -35,5 +35,5 @@
 	screen->m_relative = m_area;
 
-	m_renderer = new renderer( w, shader_path );
+	m_renderer = new renderer( w );
 }
 
Index: /trunk/src/gui/gui_renderer.cc
===================================================================
--- /trunk/src/gui/gui_renderer.cc	(revision 317)
+++ /trunk/src/gui/gui_renderer.cc	(revision 318)
@@ -11,4 +11,29 @@
 #include "nv/interface/device.hh"
 #include "nv/interface/context.hh"
+
+static const char *nv_gui_vertex_shader =
+	"#version 120\n"
+	"attribute vec2 nv_position;\n"
+	"attribute vec2 nv_texcoord;\n"
+	"attribute vec4 nv_color;\n"
+	"varying vec4 v_color;\n"
+	"varying vec2 v_texcoord;\n"
+	"uniform mat4 nv_m_projection;\n"
+	"void main(void)\n"
+	"{\n"
+	"	gl_Position = nv_m_projection * vec4(nv_position.x, nv_position.y, 0.0, 1.0);\n"
+	"	v_texcoord  = nv_texcoord;\n"
+	"	v_color     = nv_color;\n"
+	"}\n";
+static const char *nv_gui_fragment_shader =
+	"#version 120\n"
+	"varying vec4 v_color;\n"
+	"varying vec2 v_texcoord;\n"
+	"uniform sampler2D nv_t_diffuse;\n"
+	"void main(void)\n"
+	"{\n"
+	"	vec4 tex_color = texture2D( nv_t_diffuse, v_texcoord );\n"
+	"	gl_FragColor   = v_color * tex_color;\n"
+	"}\n";
 
 using namespace nv;
@@ -92,5 +117,5 @@
 };
 
-renderer::renderer( window* w, const std::string& shader_path  )
+renderer::renderer( window* w )
 	: m_window(w)
 	, m_style()
@@ -110,6 +135,5 @@
 	screen_render_data* sr = new screen_render_data( w->get_context(), 1024 );
 	m_render_data = sr;
-	// ** EXTREMELY TEMPORARY!
-	sr->shader     = m_window->get_device()->create_program( nv::slurp( shader_path + ".vert" ), nv::slurp( shader_path + ".frag" ) );
+	sr->shader     = m_window->get_device()->create_program( nv_gui_vertex_shader, nv_gui_fragment_shader );
 	m_scene_state.get_camera().set_ortho( 0.0f, float( m_window->get_width() ), float( m_window->get_height() ), 0.0f );
 
