go-gl / gl

Go bindings for OpenGL (generated via glow)
MIT License
1.07k stars 74 forks source link

How to use go-gl with ANGLE? #83

Closed medvednikov closed 7 years ago

medvednikov commented 7 years ago

Hi,

Right now I can't run my application on an old Windows machine with a GPU that doesn't have OpenGL support.

ANGLE helps with that:

http://angleproject.org/

I don't have much experience with C++ and OpenGL, so it's not clear to me how to make go-gl use this OpenGL ES implementation instead of the default one.

According to ANGLE's docs, all you need to do is configure the build environment to have access to libEGL.lib and libGLESv2.lib. They have instructions for Visual C++. I'd be very grateful if someone could help make it work with Go.

Thanks!

dmitshur commented 7 years ago

This is a continuation of the question from https://github.com/go-gl/glfw/issues/203.

medvednikov commented 7 years ago

I would really appreciate some help here... Hundreds of users are waiting for this.

How do I make go-gl use ANGLE's DLLs?

Thanks

dmitshur commented 7 years ago

I don't have the answer to this question, because I'm not familiar with ANGLE and I don't use Windows as my primary OS at this time.

I would suggest trying to ask the question in other mediums, where you may have better luck.

medvednikov commented 7 years ago

@shurcooL

I figured it out. All I had to do was build ANGLE, copy all necessary .h and .lib files, and change the cgo build flags in v3.1/gles2/{package.go,procaddr.go} to

// #cgo windows LDFLAGS: -llibEGL -llibGLESv2

And then I also replaced

#if defined(TAG_EGL) with #if 1 since ANGLE requires EGL.

I only need to do this on my Windows VM, so this hack is ok. Would be great to have an official ANGLE support some day.

Thanks for all your great work!