예제 #1
0
        public GraphicsDevice(IntPtr target)
        {
            context = OpenGLContext.GetContext();

            context.Samples = 4;
            // Create context using platform specific methods
            context.CreateContext(target, IntPtr.Zero, null);
            //GL.InitGeneral(context);
            //foreach (var str in GL.GetSupportedExtensions())
            //Console.WriteLine(str);

            modelview_matrix  = new MatrixState();
            projection_matrix = new MatrixState();
            texture_matrix    = new MatrixState();
            normal_matrix     = new MatrixState();

            var err = GL.glGetError();

            GL.InitGL_1_2(context);
            GL.InitGL_1_3(context);
            GL.InitGL_1_4(context);
            GL.InitGL_1_5(context);
            GL.InitGL_2_0(context);
            GL.InitGL_2_1(context);
            GL.InitGL_3_0(context);
            GL.InitGL_3_1(context);
            GL.InitGL_3_2(context);
            GL.InitFramebuffers(context);
            GL.InitVertexArrayObjects(context);
            var sp = GL.GetSupportedExtensions();

            if (sp.Contains("GL_AMD_debug_output"))
            {
                GL.InitDebugOutputAMD(context);
                GL.glDebugMessageCallbackAMD(new OpenGL.OpenGL.DebugProc(DebugProcecure), IntPtr.Zero);
                GL.glDebugMessageEnableAMD(0, 0, 0, new int[] { }, GL.boolean.TRUE);
            }

            err = GL.glGetError();

            GL.glEnable(GL.Const.GL_TEXTURE_2D);

            state       = new OpenGLState(this);
            state.Blend = true;
            state.BlendFunction(Blend.SrcAlpha, Blend.OneMinusSrcAlpha);
            state.Culling   = true;
            state.DepthTest = true;
        }
예제 #2
0
        public GraphicsDevice(IntPtr target)
        {
            context = OpenGLContext.GetContext();

            context.Samples = 4;
            // Create context using platform specific methods
            context.CreateContext(target, IntPtr.Zero, null);
            //GL.InitGeneral(context);
            //foreach (var str in GL.GetSupportedExtensions())
                //Console.WriteLine(str);

            modelview_matrix = new MatrixState();
            projection_matrix = new MatrixState();
            texture_matrix = new MatrixState();
            normal_matrix = new MatrixState();

            var err = GL.glGetError();
            GL.InitGL_1_2(context);
            GL.InitGL_1_3(context);
            GL.InitGL_1_4(context);
            GL.InitGL_1_5(context);
            GL.InitGL_2_0(context);
            GL.InitGL_2_1(context);
            GL.InitGL_3_0(context);
            GL.InitGL_3_1(context);
            GL.InitGL_3_2(context);
            GL.InitFramebuffers(context);
            GL.InitVertexArrayObjects(context);
            var sp = GL.GetSupportedExtensions();
            if (sp.Contains("GL_AMD_debug_output"))
            {
                GL.InitDebugOutputAMD(context);
                GL.glDebugMessageCallbackAMD(new OpenGL.OpenGL.DebugProc(DebugProcecure), IntPtr.Zero);
                GL.glDebugMessageEnableAMD(0, 0, 0, new int[] { }, GL.boolean.TRUE);
            }

            err = GL.glGetError();

            GL.glEnable(GL.Const.GL_TEXTURE_2D);

            state = new OpenGLState(this);
            state.Blend = true;
            state.BlendFunction(Blend.SrcAlpha, Blend.OneMinusSrcAlpha);
            state.Culling = true;
            state.DepthTest = true;
        }