glamor_egl: Add support for the platform doesn't have gbm.
Maybe we should use eglGetDisplayDRM to get display, but current PVR's driver is using eglGetDisplay. Signed-off-by: Peng Li <peng.li@intel.com> Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									92671e3ac8
								
							
						
					
					
						commit
						3373d2c696
					
				| 
						 | 
					@ -46,7 +46,9 @@
 | 
				
			||||||
#define EGL_EGLEXT_PROTOTYPES
 | 
					#define EGL_EGLEXT_PROTOTYPES
 | 
				
			||||||
#define EGL_DISPLAY_NO_X_MESA
 | 
					#define EGL_DISPLAY_NO_X_MESA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef GLAMOR_HAS_GBM
 | 
				
			||||||
#include <gbm.h>
 | 
					#include <gbm.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if GLAMOR_GLES2
 | 
					#if GLAMOR_GLES2
 | 
				
			||||||
#include <GLES2/gl2.h>
 | 
					#include <GLES2/gl2.h>
 | 
				
			||||||
| 
						 | 
					@ -84,7 +86,9 @@ struct glamor_egl_screen_private {
 | 
				
			||||||
	int fd;
 | 
						int fd;
 | 
				
			||||||
	int front_buffer_handle;
 | 
						int front_buffer_handle;
 | 
				
			||||||
	int cpp;
 | 
						int cpp;
 | 
				
			||||||
 | 
					#ifdef GLAMOR_HAS_GBM
 | 
				
			||||||
	struct gbm_device *gbm;
 | 
						struct gbm_device *gbm;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	PFNEGLCREATEIMAGEKHRPROC egl_create_image_khr;
 | 
						PFNEGLCREATEIMAGEKHRPROC egl_create_image_khr;
 | 
				
			||||||
	PFNEGLDESTROYIMAGEKHRPROC egl_destroy_image_khr;
 | 
						PFNEGLDESTROYIMAGEKHRPROC egl_destroy_image_khr;
 | 
				
			||||||
| 
						 | 
					@ -297,12 +301,16 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	scrn->privates[xf86GlamorEGLPrivateIndex].ptr = glamor_egl;
 | 
						scrn->privates[xf86GlamorEGLPrivateIndex].ptr = glamor_egl;
 | 
				
			||||||
	glamor_egl->fd = fd;
 | 
						glamor_egl->fd = fd;
 | 
				
			||||||
 | 
					#ifdef GLAMOR_HAS_GBM
 | 
				
			||||||
	glamor_egl->gbm = gbm_create_device(glamor_egl->fd);
 | 
						glamor_egl->gbm = gbm_create_device(glamor_egl->fd);
 | 
				
			||||||
	if (glamor_egl->gbm == NULL) {
 | 
						if (glamor_egl->gbm == NULL) {
 | 
				
			||||||
		ErrorF("couldn't get display device\n");
 | 
							ErrorF("couldn't get display device\n");
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	glamor_egl->display = eglGetDisplay(glamor_egl->gbm);
 | 
						glamor_egl->display = eglGetDisplay(glamor_egl->gbm);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						glamor_egl->display = eglGetDisplay((EGLNativeDisplayType)fd);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef GLAMOR_GLES2
 | 
					#ifndef GLAMOR_GLES2
 | 
				
			||||||
	eglBindAPI(EGL_OPENGL_API);
 | 
						eglBindAPI(EGL_OPENGL_API);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue