{"action":"closed","issue":{"url":"https://api.github.com/repos/luca-piccioni/OpenGL.Net/issues/24","repository_url":"https://api.github.com/repos/luca-piccioni/OpenGL.Net","labels_url":"https://api.github.com/repos/luca-piccioni/OpenGL.Net/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/luca-piccioni/OpenGL.Net/issues/24/comments","events_url":"https://api.github.com/repos/luca-piccioni/OpenGL.Net/issues/24/events","html_url":"https://github.com/luca-piccioni/OpenGL.Net/issues/24","id":188971742,"number":24,"title":"Raspberry PI VideoCore IV API Support","user":{"login":"luca-piccioni","id":4700681,"avatar_url":"https://avatars.githubusercontent.com/u/4700681?v=3","gravatar_id":"","url":"https://api.github.com/users/luca-piccioni","html_url":"https://github.com/luca-piccioni","followers_url":"https://api.github.com/users/luca-piccioni/followers","following_url":"https://api.github.com/users/luca-piccioni/following{/other_user}","gists_url":"https://api.github.com/users/luca-piccioni/gists{/gist_id}","starred_url":"https://api.github.com/users/luca-piccioni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luca-piccioni/subscriptions","organizations_url":"https://api.github.com/users/luca-piccioni/orgs","repos_url":"https://api.github.com/users/luca-piccioni/repos","events_url":"https://api.github.com/users/luca-piccioni/events{/privacy}","received_events_url":"https://api.github.com/users/luca-piccioni/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-13T14:00:24Z","updated_at":"2016-12-02T22:57:09Z","closed_at":"2016-12-02T22:57:08Z","body":"Current head revision is able to run on Raspberry PI 2 without X server running. It uses the BCM VideoCore IV API to create a window onto the connected LCD, and instantiate GLES2 context properly without errors.\r\n\r\nHowever, no presentation is visible screen, but the glClear operation is executed correctly. This need more investigation.\r\n\r\nHere is a dump of the output of the sample application. No errors are generated and it seems that data is marshalled correctly. I tried to follow the RPi sample application found in `/opt/vc/src`, but I cannot guarantee the call orders.\r\n\r\n        mono HelloTriangle.VideoCore.exe\r\n\t// Querying EGL from libEGL.so\r\n\t// EGL availability: True\r\n\t// Querying BCM VideoCore from libbcm_host.so\r\n\t// BCM VideoCore availability: True\r\n\tbcm_host_init()\r\n\teglGetDisplay(0x00000000) = 00000001\r\n\teglInitialize(0x00000001, { null }, { null }) = True\r\n\teglGetError() = 12288\r\n\teglQueryString(0x00000001, 12372) = 1.4\r\n\teglGetError() = 12288\r\n\teglQueryString(0x00000001, 12371) = Broadcom\r\n\teglGetError() = 12288\r\n\teglQueryString(0x00000001, 12429) = OpenGL_ES OpenVG\r\n\teglGetError() = 12288\r\n\teglTerminate(0x00000001) = True\r\n\teglGetError() = 12288\r\n\t// Creating VideoCore native window\r\n\tgraphics_get_display_size(0, 1920, 1080) = 0\r\n\tvc_dispmanx_display_open(0) = 268435520\r\n\tvc_dispmanx_update_start(0) = 1359443983\r\n\tvc_dispmanx_element_add(1359443983, 268435520, 0, VC_RECT_T={ x=0 y=0 w=1920 h=1080 }, 0, VC_RECT_T={ x=0 y=0 w=125829120 h=70778880 }, 0, 0, 0, DISPMANX_STEREOSCOPIC_NONE) = 536893440\r\n\tvc_dispmanx_update_submit_sync(1359443983) = 0\r\n\t// VideoIV Native Window is 0x766170D0\r\n\t// OpenGL.Net is initializing\r\n\teglGetDisplay(0x00000000) = 00000001\r\n\teglInitialize(0x00000001, {1}, {4}) = True\r\n\teglGetError() = 12288\r\n\teglChooseConfig(0x00000001, {12352,4,12339,1,12324,8,12323,8,12322,8,12344}, {8,26,6,4,2,16,14,12}, 8, {8}) = True\r\n\teglGetError() = 12288\r\n\teglCreatePbufferSurface(0x00000001, 0x00000008, {12375,1,12374,1,12344}) = 00000001\r\n\teglGetError() = 12288\r\n\teglChooseConfig(0x00000001, {12352,4,12339,5,12324,8,12323,8,12322,8,12344}, {8,26,6,4,2,16,14,12}, 8, {8}) = True\r\n\teglGetError() = 12288\r\n\teglBindAPI(12448) = True\r\n\teglGetError() = 12288\r\n\teglCreateContext(0x00000001, 0x00000008, 0x00000000, {12440,2,12344}) = 00000001\r\n\teglGetError() = 12288\r\n\teglQueryContext(0x00000001, 0x00000001, 12439, {12448}) = True\r\n\teglGetError() = 12288\r\n\teglBindAPI(12448) = True\r\n\teglGetError() = 12288\r\n\teglMakeCurrent(0x00000001, 0x00000001, 0x00000001, 0x00000001) = True\r\n\teglGetError() = 12288\r\n\teglGetCurrentContext() = 00000001\r\n\teglGetError() = 12288\r\n\tglGetString(Version) = OpenGL ES 2.0\r\n\tglGetError() = NoError\r\n\tglGetString(Version) = OpenGL ES 2.0\r\n\tglGetError() = NoError\r\n\tglGetString(ShadingLanguageVersion) = OpenGL ES GLSL ES 1.00\r\n\tglGetError() = NoError\r\n\tglGetString(Vendor) = Broadcom\r\n\tglGetError() = NoError\r\n\tglGetString(Renderer) = VideoCore IV HW\r\n\tglGetError() = NoError\r\n\t// Query GL extensions.\r\n\tglGetString(Version) = OpenGL ES 2.0\r\n\tglGetError() = NoError\r\n\tglGetString(Extensions) = GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture GL_OES_texture_npot GL_OES_depth24 GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_EGL_image_external GL_EXT_discard_framebuffer GL_OES_rgb8_rgba8 GL_OES_depth32 GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_APPLE_rgb_422 GL_EXT_debug_marker\r\n\tglGetError() = NoError\r\n\t// Query OpenGL implementation limits.\r\n\tglGetIntegerv(0x0D33, 2048)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x0D3A, {2048,2048})\r\n\tglGetError() = NoError\r\n\tglGetFloatv(0x846E, {0,256})\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x851C, 2048)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x8B4D, 8)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x8872, 8)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x8869, 8)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x8B4C, 8)\r\n\tglGetError() = NoError\r\n\tglGetIntegerv(0x84E8, 2048)\r\n\tglGetError() = NoError\r\n\t// Query EGL extensions.\r\n\teglQueryString(0x00000001, 12373) = EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_vg_parent_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_lock_surface\r\n\teglGetError() = 12288\r\n\teglMakeCurrent(0x00000001, 0x00000000, 0x00000000, 0x00000000) = True\r\n\teglGetError() = 12288\r\n\teglDestroyContext(0x00000001, 0x00000001) = True\r\n\teglGetError() = 12288\r\n\teglDestroySurface(0x00000001, 0x00000001) = True\r\n\teglGetError() = 12288\r\n\teglTerminate(0x00000001) = True\r\n\teglGetError() = 12288\r\n\t// OpenGL.Net has been initialized\r\n\teglGetDisplay(0x00000000) = 00000001\r\n\teglInitialize(0x00000001, {1}, {4}) = True\r\n\teglGetError() = 12288\r\n\teglChooseConfig(0x00000001, {12352,4,12339,4,12324,8,12323,8,12322,8,12321,8,12344}, {7,25,5,3,1,15,13,11}, 8, {8}) = True\r\n\teglGetError() = 12288\r\n\teglBindAPI(12448) = True\r\n\teglGetError() = 12288\r\n\teglCreateContext(0x00000001, 0x00000007, 0x00000000, {12440,2,12344}) = 00000001\r\n\teglGetError() = 12288\r\n\teglCreateWindowSurface(0x00000001, 0x00000007, 0x766170D0, {12344}) = 00000001\r\n\teglGetError() = 12288\r\n\teglQueryContext(0x00000001, 0x00000001, 12439, {12448}) = True\r\n\teglGetError() = 12288\r\n\teglBindAPI(12448) = True\r\n\teglGetError() = 12288\r\n\teglMakeCurrent(0x00000001, 0x00000001, 0x00000001, 0x00000001) = True\r\n\teglGetError() = 12288\r\n\teglGetCurrentContext() = 00000001\r\n\teglGetError() = 12288\r\n\tglGetString(Version) = OpenGL ES 2.0\r\n\tglGetError() = NoError\r\n\tglViewport(0, 0, 1920, 1080)\r\n\tglGetError() = NoError\r\n\tglClearColor(1, 0, 0, 0)\r\n\tglGetError() = NoError\r\n\tglClear(ColorBufferBit)\r\n\tglGetError() = NoError\r\n\tglFlush()\r\n\tglGetError() = NoError\r\n\teglSwapBuffers(0x00000001, 0x00000001) = True\r\n\teglGetError() = 12288\r\n"}}
{"actor":{"display_login":"luca-piccioni"}}