public void Load()
        {
            Vertex        v;
            List <Vertex> geometry = new List <Vertex>();

            v = new Vertex()
            {
                Position = new Vector3(0f, 0f, 0) + Position,
                TexCoord = new Vector2(0f, 1f)
            };
            geometry.Add(v);

            v = new Vertex()
            {
                Position = new Vector3(1.0f, 0f, 0) + Position,
                TexCoord = new Vector2(1f, 1f)
            };
            geometry.Add(v);

            v = new Vertex()
            {
                Position = new Vector3(1.0f, this.Height, 0) + Position,
                TexCoord = new Vector2(1f, 0f)
            };
            geometry.Add(v);

            v = new Vertex()
            {
                Position = new Vector3(0f, this.Height, 0) + Position,
                TexCoord = new Vector2(0f, 0f)
            };

            geometry.Add(v);


            Bitmap       bmpCross = Properties.Resources.crosshair;
            GraphicsUnit gunit    = GraphicsUnit.Pixel;
            var          bounds   = bmpCross.GetBounds(ref gunit);

            this._crosshair = ImageTexture.CreateTextureFromImage(bmpCross, bounds);

            var @default = ShaderCompiler.ApplyShader(CrosshairShader.vertexShaderSource, CrosshairShader.fragmentShaderSource);

            @default.Link();
            @default.Use();

            CurrentShader = @default;

            Buffering.BufferShaderGeometry(geometry, out vbo, out NumVerticies);
        }