本文整理汇总了C++中eglInitialize函数 的典型用法代码示例。如果您正苦于以下问题:C++ eglInitialize函数的具体用法?C++ eglInitialize怎么用?C++ eglInitialize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了eglInitialize函数 的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: android_main
void android_main(struct android_app* app) {
char * argv[] = {"cvandroid"};
const EGLint attr[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_BLUE_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_RED_SIZE, 8,
EGL_NONE
};
EGLint ncfg;
EGLint fmt;
EGLint w;
EGLint h;
EGLConfig cfg;
EGLDisplay dpy;
EGLSurface surf;
EGLContext ctx;
app_dummy();
app->userData = 0;
app->onAppCmd = handle;
app->onInputEvent = input;
dbg("wait\n");
while (!app->userData)
pollEvent(app);
g_app = app;
cvInject(CVE_INIT, 1, (intptr_t)argv);
dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if (!eglInitialize(dpy, 0, 0))
err("initialize display");
eglChooseConfig(dpy, attr, &cfg, 1, &ncfg);
eglGetConfigAttrib(dpy, cfg, EGL_NATIVE_VISUAL_ID, &fmt);
ANativeWindow_setBuffersGeometry(app->window, 0, 0, fmt);
surf = eglCreateWindowSurface(dpy, cfg, app->window, 0);
ctx = eglCreateContext(dpy, cfg, 0, 0);
eglMakeCurrent(dpy, surf, surf, ctx);
eglQuerySurface(dpy, surf, EGL_WIDTH, &w);
eglQuerySurface(dpy, surf, EGL_HEIGHT, &h);
if (!eglSwapInterval(dpy, 1))
err("setting swap interval");
cvInject(CVE_RESIZE, w, h);
cvInject(CVE_GLINIT, 0, 0);
app->userData = 0;
while (!app->userData && !app->destroyRequested) {
cvInject(CVE_UPDATE, 0, 0);
if (!eglSwapBuffers(dpy, surf))
err("swapbuffers failed");
pollEvent(app);
}
if (app->destroyRequested)
cvInject(CVE_CLOSE, 0, 0);
dbg("terminated");
cvInject(CVE_GLTERM, 0, 0);
if (!eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT))
err("clearing current");
if (!eglDestroyContext(dpy, ctx))
err("destroying context");
if (!eglDestroySurface(dpy, surf))
err("destroying surface");
if (!eglTerminate(dpy))
err("terminating");
}
开发者ID:jacereda, 项目名称:glcv, 代码行数:61, 代码来源:android.c
示例2: main
int
main(int argc, char *argv[])
{
static unsigned int gs_screen_wdt = 0;
static unsigned int gs_screen_hgt = 0;
static void *gs_native_window = 0;
NXPL_NativeWindowInfo win_info;
NEXUS_ClientAuthenticationSettings authSettings;
NEXUS_Error err;
printf ("simple_client_init(\"xre\", &authSettings)\n");
simple_client_init("xre", &authSettings);
err = NEXUS_Platform_AuthenticatedJoin(&authSettings);
printf("NEXUS_Platform_AuthenticatedJoin(&authSettings) : %d\n", NEXUS_Platform_AuthenticatedJoin(&authSettings));
if (err)
{
exit(EXIT_FAILURE);
}
NXPL_PlatformHandle nxpl_handle = 0;
NXPL_RegisterNexusDisplayPlatform (&nxpl_handle, EGL_DEFAULT_DISPLAY );
gs_screen_wdt = 1280;
gs_screen_hgt = 720;
win_info.x = 0;
win_info.y = 0;
win_info.width = gs_screen_wdt;
win_info.height = gs_screen_hgt;
win_info.stretch = true;
gs_native_window = NXPL_CreateNativeWindow(&win_info);
printf ("NXPL_CreateNativeWindow(&win_info) : %d\n", gs_native_window);
int maj, min;
EGLContext ctx;
EGLSurface pbuffer, pwindow;
EGLConfig* configs;
EGLBoolean b;
const EGLint pbufAttribs[] = {
EGL_WIDTH, 500,
EGL_HEIGHT, 500,
EGL_NONE
};
const EGLint pwinAttribs[] = {
EGL_WIDTH, 500,
EGL_HEIGHT, 500,
EGL_NONE
};
if ( eglBindAPI(EGL_OPENGL_ES_API) != EGL_TRUE ) {
printf("failed to bind api %x\n", eglGetError());
exit (EXIT_FAILURE);
}
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(d);
if (!eglInitialize(d, &maj, &min)) {
printf("demo: eglInitialize failed\n");
exit(1);
}
printf("EGL version = %d.%d\n", maj, min);
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
configs=PrintConfigs(d);
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
if (ctx == EGL_NO_CONTEXT) {
printf("failed to create context\n");
return 0;
}
printf("eglCreateWindowSurface : configs[0] %p\n", configs[0]);
/*
pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
if (pbuffer == EGL_NO_SURFACE) {
printf("failed to create pbuffer\n");
return 0;
}
*/
int i =0;
for (i=0; i<=0x1c; ++i) {
pbuffer = eglCreatePbufferSurface(d, configs[i], pbufAttribs);
// pwindow = eglCreateWindowSurface(d, i, gs_native_window, pwinAttribs);
// if (pwindow == EGL_NO_SURFACE) {
if (pbuffer == EGL_NO_SURFACE) {
printf("failed to create pwindow for config[%x]\n", i);
// return 0;
//.........这里部分代码省略.........
开发者ID:Rebox-Rob, 项目名称:Reboxrepository, 代码行数:101, 代码来源:demo_1.c
示例3: gfx_ctx_set_video_mode
static bool gfx_ctx_set_video_mode(
unsigned width, unsigned height,
bool fullscreen)
{
if (g_inited)
return false;
int ret = 0;
struct drm_fb *fb = NULL;
struct sigaction sa = {{0}};
sa.sa_handler = sighandler;
sa.sa_flags = SA_RESTART;
sigemptyset(&sa.sa_mask);
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
#define EGL_ATTRIBS_BASE \
EGL_SURFACE_TYPE, EGL_WINDOW_BIT, \
EGL_RED_SIZE, 1, \
EGL_GREEN_SIZE, 1, \
EGL_BLUE_SIZE, 1, \
EGL_ALPHA_SIZE, 0, \
EGL_DEPTH_SIZE, 0
static const EGLint egl_attribs_gl[] = {
EGL_ATTRIBS_BASE,
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
EGL_NONE,
};
static const EGLint egl_attribs_gles[] = {
EGL_ATTRIBS_BASE,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE,
};
static const EGLint egl_attribs_vg[] = {
EGL_ATTRIBS_BASE,
EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
EGL_NONE,
};
// GLES 2.0. Don't use for any other API.
static const EGLint gles_context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
const EGLint *attrib_ptr;
switch (g_api)
{
case GFX_CTX_OPENGL_API:
attrib_ptr = egl_attribs_gl;
break;
case GFX_CTX_OPENGL_ES_API:
attrib_ptr = egl_attribs_gles;
break;
case GFX_CTX_OPENVG_API:
attrib_ptr = egl_attribs_vg;
break;
default:
attrib_ptr = NULL;
}
g_egl_dpy = eglGetDisplay((EGLNativeDisplayType)g_gbm_dev);
if (!g_egl_dpy)
{
RARCH_ERR("[KMS/EGL]: Couldn't get EGL display.\n");
goto error;
}
EGLint major, minor;
if (!eglInitialize(g_egl_dpy, &major, &minor))
goto error;
EGLint n;
if (!eglChooseConfig(g_egl_dpy, attrib_ptr, &g_config, 1, &n) || n != 1)
goto error;
g_egl_ctx = eglCreateContext(g_egl_dpy, g_config, EGL_NO_CONTEXT, (g_api == GFX_CTX_OPENGL_ES_API) ? gles_context_attribs : NULL);
if (!g_egl_ctx)
goto error;
g_egl_surf = eglCreateWindowSurface(g_egl_dpy, g_config, (EGLNativeWindowType)g_gbm_surface, NULL);
if (!g_egl_surf)
goto error;
if (!eglMakeCurrent(g_egl_dpy, g_egl_surf, g_egl_surf, g_egl_ctx))
goto error;
glClear(GL_COLOR_BUFFER_BIT);
eglSwapBuffers(g_egl_dpy, g_egl_surf);
g_bo = gbm_surface_lock_front_buffer(g_gbm_surface);
fb = drm_fb_get_from_bo(g_bo);
ret = drmModeSetCrtc(g_drm_fd, g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode);
if (ret < 0)
goto error;
//.........这里部分代码省略.........
开发者ID:bigreen, 项目名称:RetroArch, 代码行数:101, 代码来源:drm_egl_ctx.c
示例4: eglGetDisplay
bool
FBgles1Glue::init(int /*argc*/, char *** /*argv*/)
{
GNASH_REPORT_FUNCTION;
EGLint majorVersion, minorVersion;
EGLint numOfConfigs = 0;
EGLint result;
const EGLint main_attrib_list[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_BUFFER_SIZE, 32,
EGL_DEPTH_SIZE, 16,
EGL_NONE
};
_display = eglGetDisplay((NativeDisplayType)0);
if (_display == EGL_NO_DISPLAY) {
return false;
}
log_trace(_("EGL: getDisplay ok"));
result = eglInitialize(_display, &majorVersion, &minorVersion);
if (result == EGL_FALSE) {
return false;
}
log_trace(_("EGL: initialize ok"));
result = eglChooseConfig(_display, main_attrib_list, &_config, 1,
&numOfConfigs);
if (result == EGL_FALSE || numOfConfigs != 1) {
return false;
}
log_trace(_("EGL: config ok"));
_surface = eglCreateWindowSurface(_display, _config, (NativeWindowType)0,
NULL);
if (eglGetError () != EGL_SUCCESS) {
return false;
}
log_trace(_("EGL: surface ok"));
_context = eglCreateContext(_display, _config, NULL, NULL);
if (eglGetError () != EGL_SUCCESS) {
return false;
}
log_trace(_("EGL: context ok"));
eglMakeCurrent(_display, _surface, _surface, _context);
if (eglGetError () != EGL_SUCCESS) {
return false;
}
log_trace(_("EGL: current ok"));
const EGLint pbuffer_config_list[] = {
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
EGL_BUFFER_SIZE, 32,
EGL_DEPTH_SIZE, 0,
EGL_BIND_TO_TEXTURE_RGBA, EGL_TRUE,
EGL_CONFIG_CAVEAT, EGL_NONE,
EGL_NONE
};
result = eglChooseConfig(_display, pbuffer_config_list, &_pbuffer_config,
1, &numOfConfigs);
if (result == EGL_FALSE || numOfConfigs == 0) {
return false;
}
// log_trace("EGL: pbuffer config ok");
const EGLint pbuffer_attrib_list[] = {
EGL_WIDTH, EGL_MAX_PBUFFER_WIDTH,
EGL_HEIGHT, EGL_MAX_PBUFFER_HEIGHT,
EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGBA,
EGL_TEXTURE_TARGET, EGL_TEXTURE_2D,
EGL_MIPMAP_TEXTURE, EGL_FALSE,
EGL_NONE
};
_pbuffer = eglCreatePbufferSurface(_display, _pbuffer_config,
pbuffer_attrib_list);
if (eglGetError () != EGL_SUCCESS) {
return false;
}
log_trace("EGL: pbuffer surface ok");
return true;
}
开发者ID:BrandRegard, 项目名称:gnash, 代码行数:87, 代码来源:fb_glue_gles1.cpp
示例5: initGL
//==============================================================================
void initGL(int argc, char **argv){
// Start OpenGL ES
bcm_host_init();
// Clear application state
int32_t success = 0;
EGLBoolean result;
EGLint num_config;
static EGL_DISPMANX_WINDOW_T nativeviewport;
DISPMANX_ELEMENT_HANDLE_T dispman_element;
DISPMANX_DISPLAY_HANDLE_T dispman_display;
DISPMANX_UPDATE_HANDLE_T dispman_update;
VC_RECT_T dst_rect;
VC_RECT_T src_rect;
uint32_t screen_width;
uint32_t screen_height;
static const EGLint attribute_list[] = {
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_DEPTH_SIZE, 16,
EGL_NONE
};
static const EGLint context_attributes[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
EGLConfig config;
// get an EGL display connection
display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(display!=EGL_NO_DISPLAY);
check();
// initialize the EGL display connection
result = eglInitialize(display, NULL, NULL);
assert(EGL_FALSE != result);
check();
// get an appropriate EGL frame buffer configuration
result = eglChooseConfig(display, attribute_list, &config, 1, &num_config);
assert(EGL_FALSE != result);
check();
// get an appropriate EGL frame buffer configuration
result = eglBindAPI(EGL_OPENGL_ES_API);
assert(EGL_FALSE != result);
check();
// create an EGL rendering context
context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attributes);
assert(context!=EGL_NO_CONTEXT);
check();
// create an EGL viewport surface
success = graphics_get_display_size(0 /* LCD */, &screen_width, &screen_height);
assert( success >= 0 );
// Initially the viewport is for all the screen
viewport.x = 0;
viewport.y = 0;
viewport.z = screen_width;
viewport.w = screen_height;
dst_rect.x = viewport.x;
dst_rect.y = viewport.y;
dst_rect.width = viewport.z;
dst_rect.height = viewport.w;
src_rect.x = 0;
src_rect.y = 0;
src_rect.width = viewport.z << 16;
src_rect.height = viewport.w << 16;
dispman_display = vc_dispmanx_display_open( 0 /* LCD */);
dispman_update = vc_dispmanx_update_start( 0 );
dispman_element = vc_dispmanx_element_add( dispman_update, dispman_display,
0/*layer*/, &dst_rect, 0/*src*/,
&src_rect, DISPMANX_PROTECTION_NONE, 0 /*alpha*/, 0/*clamp*/, (DISPMANX_TRANSFORM_T)0/*transform*/);
nativeviewport.element = dispman_element;
nativeviewport.width = viewport.z;
nativeviewport.height = viewport.w;
vc_dispmanx_update_submit_sync( dispman_update );
check();
surface = eglCreateWindowSurface( display, config, &nativeviewport, NULL );
assert(surface != EGL_NO_SURFACE);
check();
//.........这里部分代码省略.........
开发者ID:DeVryCapstone1603, 项目名称:tangram-es, 代码行数:101, 代码来源:context.cpp
示例6: egl_create
int egl_create(EGLDisplay *_display, EGLSurface *_surface, int *_w, int *_h) {
EGLBoolean res;
EGLConfig config = { 0 };
EGLint context_attrs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
EGLint config_attrs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE };
EGLint major, minor;
EGLContext context;
EGLSurface surface;
EGLint w, h;
EGLDisplay display;
EGLNativeWindowType window;
unsigned width, height, format;
struct CNativeWindow *cnw;
display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if (display == EGL_NO_DISPLAY)
return -1;
if (!(res = eglInitialize(display, &major, &minor)))
return -1;
fprintf(stderr, "egl version: %d.%d\n", major, minor);
if ((cnw = cnw_create()) == 0)
return -1;
cnw_info(cnw, &width, &height, &format);
window = (EGLNativeWindowType) cnw;
if ((res = select_config_for_window(display, config_attrs, format, &config)))
goto fail;
surface = eglCreateWindowSurface(display, config, window, NULL);
if (surface == EGL_NO_SURFACE)
goto fail;
context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attrs);
if (context == EGL_NO_CONTEXT)
goto fail;
if (!(res = eglMakeCurrent(display, surface, surface, context)))
goto fail;
eglQuerySurface(display, surface, EGL_WIDTH, &w);
eglQuerySurface(display, surface, EGL_HEIGHT, &h);
fprintf(stderr, "window: %d x %d\n", w, h);
*_display = display;
*_surface = surface;
*_w = w;
*_h = h;
_cnw = cnw;
return 0;
fail:
cnw_destroy(cnw);
return -1;
}
开发者ID:MIPS, 项目名称:hardware-libhardware, 代码行数:63, 代码来源:util.c
示例7: main
//.........这里部分代码省略.........
// back
+0.0f, +0.0f, -1.0f, // backbard
+0.0f, +0.0f, -1.0f, // backbard
+0.0f, +0.0f, -1.0f, // backbard
+0.0f, +0.0f, -1.0f, // backbard
// right
+1.0f, +0.0f, +0.0f, // right
+1.0f, +0.0f, +0.0f, // right
+1.0f, +0.0f, +0.0f, // right
+1.0f, +0.0f, +0.0f, // right
// left
-1.0f, +0.0f, +0.0f, // left
-1.0f, +0.0f, +0.0f, // left
-1.0f, +0.0f, +0.0f, // left
-1.0f, +0.0f, +0.0f, // left
// top
+0.0f, +1.0f, +0.0f, // up
+0.0f, +1.0f, +0.0f, // up
+0.0f, +1.0f, +0.0f, // up
+0.0f, +1.0f, +0.0f, // up
// bottom
+0.0f, -1.0f, +0.0f, // down
+0.0f, -1.0f, +0.0f, // down
+0.0f, -1.0f, +0.0f, // down
+0.0f, -1.0f, +0.0f // down
};
display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if (display == EGL_NO_DISPLAY) {
printf("Error: No display found!\n");
return -1;
}
if (!eglInitialize(display, &egl_major, &egl_minor)) {
printf("Error: eglInitialise failed!\n");
return -1;
}
printf("Using display %p with EGL version %d.%d\n",
display, egl_major, egl_minor);
printf("EGL Version \"%s\"\n", eglQueryString(display, EGL_VERSION));
printf("EGL Vendor \"%s\"\n", eglQueryString(display, EGL_VENDOR));
printf("EGL Extensions \"%s\"\n", eglQueryString(display, EGL_EXTENSIONS));
/* get an appropriate EGL frame buffer configuration */
eglChooseConfig(display, config_attribute_list, &config, 1, &num_config);
/* create an EGL rendering context */
context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attribute_list);
if (context == EGL_NO_CONTEXT) {
printf("Error: eglCreateContext failed: %d\n", eglGetError());
return -1;
}
surface = eglCreatePbufferSurface(display, config, pbuffer_attribute_list);
if (surface == EGL_NO_SURFACE) {
printf("Error: eglCreatePbufferSurface failed: %d (%s)\n",
eglGetError(), eglStrError(eglGetError()));
return -1;
}
if (!eglQuerySurface(display, surface, EGL_WIDTH, &width) ||
!eglQuerySurface(display, surface, EGL_HEIGHT, &height)) {
printf("Error: eglQuerySurface failed: %d (%s)\n",
eglGetError(), eglStrError(eglGetError()));
开发者ID:Michael-Pizzileo, 项目名称:lima, 代码行数:67, 代码来源:egl.c
示例8: init_ogl
/***********************************************************
* Name: init_ogl
*
* Arguments:
* CUBE_STATE_T *state - holds OGLES model info
*
* Description: Sets the display, OpenGL|ES context and screen stuff
*
* Returns: void
*
***********************************************************/
static void init_ogl(CUBE_STATE_T *state)
{
int32_t success = 0;
EGLBoolean result;
EGLint num_config;
static EGL_DISPMANX_WINDOW_T nativewindow;
DISPMANX_ELEMENT_HANDLE_T dispman_element;
DISPMANX_DISPLAY_HANDLE_T dispman_display;
DISPMANX_UPDATE_HANDLE_T dispman_update;
VC_RECT_T dst_rect;
VC_RECT_T src_rect;
static const EGLint attribute_list[] =
{
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_DEPTH_SIZE, 16,
//EGL_SAMPLES, 4,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_NONE
};
EGLConfig config;
// get an EGL display connection
state->display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(state->display!=EGL_NO_DISPLAY);
// initialize the EGL display connection
result = eglInitialize(state->display, NULL, NULL);
assert(EGL_FALSE != result);
// get an appropriate EGL frame buffer configuration
// this uses a BRCM extension that gets the closest match, rather than standard which returns anything that matches
result = eglSaneChooseConfigBRCM(state->display, attribute_list, &config, 1, &num_config);
assert(EGL_FALSE != result);
// create an EGL rendering context
state->context = eglCreateContext(state->display, config, EGL_NO_CONTEXT, NULL);
assert(state->context!=EGL_NO_CONTEXT);
// create an EGL window surface
success = graphics_get_display_size(0 /* LCD */, &state->screen_width, &state->screen_height);
assert( success >= 0 );
dst_rect.x = 0;
dst_rect.y = 0;
dst_rect.width = state->screen_width;
dst_rect.height = state->screen_height;
src_rect.x = 0;
src_rect.y = 0;
src_rect.width = state->screen_width << 16;
src_rect.height = state->screen_height << 16;
dispman_display = vc_dispmanx_display_open( 0 /* LCD */);
dispman_update = vc_dispmanx_update_start( 0 );
dispman_element = vc_dispmanx_element_add ( dispman_update, dispman_display,
0/*layer*/, &dst_rect, 0/*src*/,
&src_rect, DISPMANX_PROTECTION_NONE, 0 /*alpha*/, 0/*clamp*/, 0/*transform*/);
nativewindow.element = dispman_element;
nativewindow.width = state->screen_width;
nativewindow.height = state->screen_height;
vc_dispmanx_update_submit_sync( dispman_update );
state->surface = eglCreateWindowSurface( state->display, config, &nativewindow, NULL );
assert(state->surface != EGL_NO_SURFACE);
// connect the context to the surface
result = eglMakeCurrent(state->display, state->surface, state->surface, state->context);
assert(EGL_FALSE != result);
// Set background color and clear buffers
glClearColor(0.15f, 0.25f, 0.35f, 1.0f);
// Enable back face culling.
glEnable(GL_CULL_FACE);
glMatrixMode(GL_MODELVIEW);
}
开发者ID:1234sv, 项目名称:firmware, 代码行数:97, 代码来源:triangle.c
示例9: eglGetDisplay
bool CWinEGLPlatformGeneric::InitializeDisplay()
{
if (m_display != EGL_NO_DISPLAY && m_config != NULL)
return true;
EGLBoolean eglStatus;
EGLint configCount;
EGLConfig* configList = NULL;
m_display = eglGetDisplay(m_nativeDisplay);
if (m_display == EGL_NO_DISPLAY)
{
CLog::Log(LOGERROR, "EGL failed to obtain display");
return false;
}
if (!eglInitialize(m_display, 0, 0))
{
CLog::Log(LOGERROR, "EGL failed to initialize");
return false;
}
EGLint configAttrs[] = {
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_DEPTH_SIZE, 16,
EGL_STENCIL_SIZE, 0,
EGL_SAMPLE_BUFFERS, 0,
EGL_SAMPLES, 0,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE
};
// Find out how many configurations suit our needs
eglStatus = eglChooseConfig(m_display, configAttrs, NULL, 0, &configCount);
if (!eglStatus || !configCount)
{
CLog::Log(LOGERROR, "EGL failed to return any matching configurations: %d", eglStatus);
return false;
}
// Allocate room for the list of matching configurations
configList = (EGLConfig*)malloc(configCount * sizeof(EGLConfig));
if (!configList)
{
CLog::Log(LOGERROR, "kdMalloc failure obtaining configuration list");
return false;
}
// Obtain the configuration list from EGL
eglStatus = eglChooseConfig(m_display, configAttrs,
configList, configCount, &configCount);
if (!eglStatus || !configCount)
{
CLog::Log(LOGERROR, "EGL failed to populate configuration list: %d", eglStatus);
return false;
}
// Select an EGL configuration that matches the native window
m_config = configList[0];
if (m_surface != EGL_NO_SURFACE)
ReleaseSurface();
free(configList);
return true;
}
开发者ID:RobertMe, 项目名称:xbmc, 代码行数:70, 代码来源:WinEGLPlatformGeneric.cpp
示例10: createSurface
bool createSurface() //unsigned int display_width, unsigned int display_height)
{
LOG(LogInfo) << "Starting SDL...";
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_AUDIO) != 0)
{
LOG(LogError) << "Error initializing SDL!\n " << SDL_GetError() << "\n" << "Are you in the 'video', 'audio', and 'input' groups? Is X closed? Is your firmware up to date? Are you using at least the 192/64 memory split?";
return false;
}
sdlScreen = SDL_SetVideoMode(1, 1, 0, SDL_SWSURFACE);
if(sdlScreen == NULL)
{
LOG(LogError) << "Error creating SDL window for input!";
return false;
}
LOG(LogInfo) << "Creating surface...";
DISPMANX_ELEMENT_HANDLE_T dispman_element;
DISPMANX_DISPLAY_HANDLE_T dispman_display;
DISPMANX_UPDATE_HANDLE_T dispman_update;
VC_RECT_T dst_rect;
VC_RECT_T src_rect;
display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if(display == EGL_NO_DISPLAY)
{
LOG(LogError) << "Error getting display!";
return false;
}
bool result = eglInitialize(display, NULL, NULL);
if(result == EGL_FALSE)
{
LOG(LogError) << "Error initializing display!";
return false;
}
result = eglBindAPI(EGL_OPENGL_ES_API);
if(result == EGL_FALSE)
{
LOG(LogError) << "Error binding API!";
return false;
}
static const EGLint config_attributes[] =
{
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_NONE
};
GLint numConfigs;
result = eglChooseConfig(display, config_attributes, &config, 1, &numConfigs);
if(result == EGL_FALSE)
{
LOG(LogError) << "Error choosing config!";
return false;
}
context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
if(context == EGL_NO_CONTEXT)
{
LOG(LogError) << "Error getting context!\n " << eglGetError();
return false;
}
if(!display_width || !display_height)
{
bool success = graphics_get_display_size(0, &display_width, &display_height); //0 = LCD
if(success < 0)
{
LOG(LogError) << "Error getting display size!";
return false;
}
}
LOG(LogInfo) << "Resolution: " << display_width << "x" << display_height << "...";
dst_rect.x = 0; dst_rect.y = 0;
dst_rect.width = display_width; dst_rect.height = display_height;
src_rect.x = 0; src_rect.y = 0;
src_rect.width = display_width << 16; src_rect.height = display_height << 16;
//.........这里部分代码省略.........
开发者ID:777string, 项目名称:EmulationStation, 代码行数:101, 代码来源:Renderer_init_rpi.cpp
示例11: InitGL
static DFBResult
InitGL( Test *test )
{
EGLint major, minor, nconfigs;
EGLint attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_ALPHA_SIZE, 1,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE
};
EGLint context_attrs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE, EGL_NONE
};
EGLint surface_attrs[] = {
EGL_RENDER_BUFFER, EGL_BACK_BUFFER, EGL_NONE
};
EGLNativeDisplayType disp = EGL_DEFAULT_DISPLAY;
#define EGL_CHECK(cmd) \
/*fprintf(stderr, "CALLING %s...\n", #cmd);*/ \
if (cmd) { \
fprintf(stderr, "!!! %s failed\n", #cmd); \
goto quit; \
}
// get display
EGL_CHECK((display = eglGetDisplay(disp)) == EGL_NO_DISPLAY)
// init
EGL_CHECK(!eglInitialize(display, &major, &minor))
// get configs
EGL_CHECK(!eglGetConfigs(display, configs, 2, &nconfigs))
// choose config
EGL_CHECK(!eglChooseConfig(display, attribs, configs, 2, &nconfigs))
// create a surface
EGL_CHECK((surface = eglCreateWindowSurface(display, configs[0], test->primary, surface_attrs)) == EGL_NO_SURFACE)
EGL_CHECK(eglBindAPI(EGL_OPENGL_ES_API) != EGL_TRUE)
// create context
EGL_CHECK((context = eglCreateContext(display, configs[0], EGL_NO_CONTEXT, context_attrs)) == EGL_NO_CONTEXT)
EGL_CHECK(eglMakeCurrent(display, surface, surface, context) != EGL_TRUE)
eglSwapInterval( display, 1 );
/* Setup the viewport */
glViewport( 0, 0, (GLint) test->size.w, (GLint) test->size.h );
return DFB_OK;
quit:
return DFB_FAILURE;
}
开发者ID:Distrotech, 项目名称:DirectFB, 代码行数:64, 代码来源:dfbtest_egl.c
示例12: gst_gl_context_egl_create_context
static gboolean
gst_gl_context_egl_create_context (GstGLContext * context,
GstGLAPI gl_api, GstGLContext * other_context, GError ** error)
{
GstGLContextEGL *egl;
GstGLWindow *window = NULL;
EGLNativeWindowType window_handle = (EGLNativeWindowType) 0;
gint i = 0;
EGLint context_attrib[5];
EGLint majorVersion;
EGLint minorVersion;
const gchar *egl_exts;
gboolean need_surface = TRUE;
guintptr external_gl_context = 0;
GstGLDisplay *display;
egl = GST_GL_CONTEXT_EGL (context);
window = gst_gl_context_get_window (context);
GST_DEBUG_OBJECT (context, "Creating EGL context");
if (other_context) {
if (gst_gl_context_get_gl_platform (other_context) != GST_GL_PLATFORM_EGL) {
g_set_error (error, GST_GL_CONTEXT_ERROR,
GST_GL_CONTEXT_ERROR_WRONG_CONFIG,
"Cannot share context with non-EGL context");
goto failure;
}
external_gl_context = gst_gl_context_get_gl_context (other_context);
}
if ((gl_api & (GST_GL_API_OPENGL | GST_GL_API_GLES2)) == GST_GL_API_NONE) {
g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_WRONG_API,
"EGL supports opengl or gles2");
goto failure;
}
display = gst_gl_context_get_display (context);
if (display->type == GST_GL_DISPLAY_TYPE_EGL) {
egl->egl_display = (EGLDisplay) gst_gl_display_get_handle (display);
} else {
guintptr native_display = gst_gl_display_get_handle (display);
if (!native_display) {
GstGLWindow *window = NULL;
GST_WARNING ("Failed to get a global display handle, falling back to "
"per-window display handles. Context sharing may not work");
if (other_context)
window = gst_gl_context_get_window (other_context);
if (!window)
window = gst_gl_context_get_window (context);
if (window) {
native_display = gst_gl_window_get_display (window);
gst_object_unref (window);
}
}
egl->egl_display = eglGetDisplay ((EGLNativeDisplayType) native_display);
}
gst_object_unref (display);
if (eglInitialize (egl->egl_display, &majorVersion, &minorVersion)) {
GST_INFO ("egl initialized, version: %d.%d", majorVersion, minorVersion);
} else {
g_set_error (error, GST_GL_CONTEXT_ERROR,
GST_GL_CONTEXT_ERROR_RESOURCE_UNAVAILABLE,
"Failed to initialize egl: %s", gst_gl_context_egl_get_error_string ());
goto failure;
}
if (gl_api & GST_GL_API_OPENGL) {
/* egl + opengl only available with EGL 1.4+ */
if (majorVersion == 1 && minorVersion <= 3) {
if ((gl_api & ~GST_GL_API_OPENGL) == GST_GL_API_NONE) {
g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_OLD_LIBS,
"EGL version (%i.%i) too old for OpenGL support, (needed at least 1.4)",
majorVersion, minorVersion);
goto failure;
} else {
GST_WARNING
("EGL version (%i.%i) too old for OpenGL support, (needed at least 1.4)",
majorVersion, minorVersion);
if (gl_api & GST_GL_API_GLES2) {
goto try_gles2;
} else {
g_set_error (error, GST_GL_CONTEXT_ERROR,
GST_GL_CONTEXT_ERROR_WRONG_CONFIG,
"Failed to choose a suitable OpenGL API");
goto failure;
}
}
}
if (!eglBindAPI (EGL_OPENGL_API)) {
g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED,
"Failed to bind OpenGL API: %s",
gst_gl_context_egl_get_error_string ());
goto failure;
//.........这里部分代码省略.........
开发者ID:ikonst, 项目名称:gst-plugins-bad, 代码行数:101, 代码来源:gstglcontext_egl.c
示例13: gfx_ctx_set_video_mode
//.........这里部分代码省略.........
if (width != g_connector->modes[i].hdisplay || height != g_connector->modes[i].vdisplay)
continue;
if (!g_drm_mode)
{
g_drm_mode = &g_connector->modes[i];
minimum_fps_diff = g_drm_mode->vrefresh - g_settings.video.refresh_rate;
}
else
{
float diff = g_connector->modes[i].vrefresh - g_settings.video.refresh_rate;
if (diff < minimum_fps_diff)
{
g_drm_mode = &g_connector->modes[i];
minimum_fps_diff = diff;
}
}
}
}
if (!g_drm_mode)
{
RARCH_ERR("[KMS/EGL]: Did not find suitable video mode for %u x %u.\n", width, height);
goto error;
}
g_fb_width = g_drm_mode->hdisplay;
g_fb_height = g_drm_mode->vdisplay;
// Create GBM surface.
g_gbm_surface = gbm_surface_create(g_gbm_dev,
g_fb_width, g_fb_height,
GBM_FORMAT_XRGB8888,
GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
if (!g_gbm_surface)
{
RARCH_ERR("[KMS/EGL]: Couldn't create GBM surface.\n");
goto error;
}
g_egl_dpy = eglGetDisplay((EGLNativeDisplayType)g_gbm_dev);
if (!g_egl_dpy)
{
RARCH_ERR("[KMS/EGL]: Couldn't get EGL display.\n");
goto error;
}
EGLint major, minor;
if (!eglInitialize(g_egl_dpy, &major, &minor))
goto error;
EGLint n;
if (!eglChooseConfig(g_egl_dpy, attrib_ptr, &g_config, 1, &n) || n != 1)
goto error;
EGLint egl_attribs[16];
EGLint *attr = egl_attribs;
attr = egl_fill_attribs(attr);
g_egl_ctx = eglCreateContext(g_egl_dpy, g_config, EGL_NO_CONTEXT,
attr != egl_attribs ? egl_attribs : NULL);
if (g_egl_ctx == EGL_NO_CONTEXT)
goto error;
if (g_use_hw_ctx)
{
g_egl_hw_ctx = eglCreateContext(g_egl_dpy, g_config, g_egl_ctx,
attr != egl_attribs ? egl_attribs : NULL);
RARCH_LOG("[KMS/EGL]: Created shared context: %p.\n", (void*)g_egl_hw_ctx);
if (g_egl_hw_ctx == EGL_NO_CONTEXT)
goto error;
}
g_egl_surf = eglCreateWindowSurface(g_egl_dpy, g_config, (EGLNativeWindowType)g_gbm_surface, NULL);
if (!g_egl_surf)
goto error;
if (!eglMakeCurrent(g_egl_dpy, g_egl_surf, g_egl_surf, g_egl_ctx))
goto error;
glClear(GL_COLOR_BUFFER_BIT);
eglSwapBuffers(g_egl_dpy, g_egl_surf);
g_bo = gbm_surface_lock_front_buffer(g_gbm_surface);
fb = drm_fb_get_from_bo(g_bo);
ret = drmModeSetCrtc(g_drm_fd, g_crtc_id, fb->fb_id, 0, 0, &g_connector_id, 1, g_drm_mode);
if (ret < 0)
goto error;
g_inited = true;
return true;
error:
gfx_ctx_destroy(data);
return false;
}
开发者ID:isdom, 项目名称:RetroArch, 代码行数:101, 代码来源:drm_egl_ctx.c
示例14: ogl_init_window
int ogl_init_window(int x, int y)
{
int use_x,use_y,use_bpp;
Uint32 use_flags;
#ifdef OGLES
SDL_SysWMinfo info;
Window x11Window = 0;
Display* x11Display = 0;
EGLint ver_maj, ver_min;
EGLint configAttribs[] =
{
EGL_RED_SIZE, 5,
EGL_GREEN_SIZE, 6,
EGL_BLUE_SIZE, 5,
EGL_DEPTH_SIZE, 16,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
EGL_NONE, EGL_NONE
};
// explicitely request an OpenGL ES 1.x context
EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 1, EGL_NONE, EGL_NONE };
// explicitely request a doublebuffering window
EGLint winAttribs[] = { EGL_RENDER_BUFFER, EGL_BACK_BUFFER, EGL_NONE, EGL_NONE };
int iConfigs;
#endif // OGLES
if (gl_initialized)
ogl_smash_texture_list_internal();//if we are or were fullscreen, changing vid mode will invalidate current textures
SDL_WM_SetCaption(DESCENT_VERSION, "Descent II");
SDL_WM_SetIcon( SDL_LoadBMP( "d2x-rebirth.bmp" ), NULL );
use_x=x;
use_y=y;
use_bpp=GameArg.DbgBpp;
use_flags=sdl_video_flags;
if (sdl_no_modeswitch) {
const SDL_VideoInfo *vinfo=SDL_GetVideoInfo();
if (vinfo) {
use_x=vinfo->current_w;
use_y=vinfo->current_h;
use_bpp=vinfo->vfmt->BitsPerPixel;
use_flags=SDL_SWSURFACE | SDL_ANYFORMAT;
} else {
con_printf(CON_URGENT, "Could not query video info\n");
}
}
if (!SDL_SetVideoMode(use_x, use_y, use_bpp, use_flags))
{
#ifdef RPI
con_printf(CON_URGENT, "Could not set %dx%dx%d opengl video mode: %s\n (Ignored for RPI)",
x, y, GameArg.DbgBpp, SDL_GetError());
#else
Error("Could not set %dx%dx%d opengl video mode: %s\n", x, y, GameArg.DbgBpp, SDL_GetError());
#endif
}
#ifdef OGLES
#ifndef RPI
// NOTE: on the RPi, the EGL stuff is not connected to the X11 window,
// so there is no need to destroy and recreate this
ogles_destroy();
#endif
SDL_VERSION(&info.version);
if (SDL_GetWMInfo(&info) > 0) {
if (info.subsystem == SDL_SYSWM_X11) {
x11Display = info.info.x11.display;
x11Window = info.info.x11.window;
con_printf (CON_DEBUG, "Display: %p, Window: %i ===\n", (void*)x11Display, (int)x11Window);
}
}
if (eglDisplay == EGL_NO_DISPLAY) {
#ifdef RPI
eglDisplay = eglGetDisplay((EGLNativeDisplayType)EGL_DEFAULT_DISPLAY);
#else
eglDisplay = eglGetDisplay((EGLNativeDisplayType)x11Display);
#endif
if (eglDisplay == EGL_NO_DISPLAY) {
con_printf(CON_URGENT, "EGL: Error querying EGL Display\n");
}
if (!eglInitialize(eglDisplay, &ver_maj, &ver_min)) {
con_printf(CON_URGENT, "EGL: Error initializing EGL\n");
} else {
con_printf(CON_DEBUG, "EGL: Initialized, version: major %i minor %i\n", ver_maj, ver_min);
}
}
#ifdef RPI
if (rpi_setup_element(x,y,sdl_video_flags,1)) {
Error("RPi: Could not set up a %dx%d element\n", x, y);
}
//.........这里部分代码省略.........
开发者ID:CDarrow, 项目名称:DXX-Retro, 代码行数:101, 代码来源:gr.c
示例15: PSP_GL_CreateContext
SDL_GLContext
PSP_GL_CreateContext(_THIS, SDL_Window * window)
{
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
EGLint attribs[32];
EGLDisplay display;
EGLContext context;
EGLSurface surface;
EGLConfig config;
EGLint num_configs;
int i;
/* EGL init taken from glutCreateWindow() in PSPGL's glut.c. */
EGLCHK(display = eglGetDisplay(0));
EGLCHK(eglInitialize(display, NULL, NULL));
wdata->uses_gles = SDL_TRUE;
window->flags |= SDL_WINDOW_FULLSCREEN;
/* Setup the config based on SDL's current values. */
i = 0;
attribs[i++] = EGL_RED_SIZE;
attribs[i++] = _this->gl_config.red_size;
attribs[i++] = EGL_GREEN_SIZE;
attribs[i++] = _this->gl_config.green_size;
attribs[i++] = EGL_BLUE_SIZE;
attribs[i++] = _this->gl_config.blue_size;
attribs[i++] = EGL_DEPTH_SIZE;
attribs[i++] = _this->gl_config.depth_size;
if (_this->gl_config.alpha_size)
{
attribs[i++] = EGL_ALPHA_SIZE;
attribs[i++] = _this->gl_config.alpha_size;
}
if (_this->gl_config.stencil_size)
{
attribs[i++] = EGL_STENCIL_SIZE;
attribs[i++] = _this->gl_config.stencil_size;
}
attribs[i++] = EGL_NONE;
EGLCHK(eglChooseConfig(display, attribs, &config, 1, &num_configs));
if (num_configs == 0)
{
SDL_SetError("No valid EGL configs for requested mode");
return 0;
}
EGLCHK(eglGetConfigAttrib(display, config, EGL_WIDTH, &width));
EGLCHK(eglGetConfigAttrib(display, config, EGL_HEIGHT, &height));
EGLCHK(context = eglCreateContext(display, config, NULL, NULL));
EGLCHK(surface = eglCreateWindowSurface(display, config, 0, NULL));
EGLCHK(eglMakeCurrent(display, surface, surface, context));
_this->gl_data->display = display;
_this->gl_data->context = context;
_this->gl_data->surface = surface;
return context;
}
开发者ID:mgerhardy, 项目名称:caveexpress, 代码行数:67, 代码来源:SDL_pspgl.c
示例16: main
int main(int argc, char** argv)
{
gf_3d_target_t target;
gf_display_t gf_disp;
EGLConfig config;
EGLContext econtext;
EGLint num_config;
gf_dev_info_t info;
gf_layer_info_t linfo;
gf_display_info_t disp_info;
GLuint width, height;
GLuint it;
/* initialize the graphics device */
if (gf_dev_attach(&gfdev, NULL, &info)!=GF_ERR_OK)
{
perror("gf_dev_attach()");
return -1;
}
/* Setup the layer we will use */
if (gf_display_attach(&gf_disp, gfdev, 0, &disp_info)!=GF_ERR_OK)
{
fprintf(stderr, "gf_display_attach() failed\n");
return -1;
}
width=disp_info.xres;
height=disp_info.yres;
layer_idx=disp_info.main_layer_index;
/* get an EGL display connection */
display=eglGetDisplay(gfdev);
if (display==EGL_NO_DISPLAY)
{
fprintf(stderr, "eglGetDisplay() failed\n");
return -1;
}
if (gf_layer_attach(&layer, gf_disp, layer_idx, 0)!=GF_ERR_OK)
{
fprintf(stderr, "gf_layer_attach() failed\n");
return -1;
}
/* initialize the EGL display connection */
if (eglInitialize(display, NULL, NULL)!=EGL_TRUE)
{
fprintf(stderr, "eglInitialize: error 0x%x\n", eglGetError());
return -1;
}
for (it=0;; it++)
{
/* Walk through all possible pixel formats for this layer */
if (gf_layer_query(layer, it, &linfo)==-1)
{
fprintf(stderr, "Couldn't find a compatible frame "
"buffer configuration on layer %d\n", layer_idx);
return -1;
}
/*
* We want the color buffer format to match the layer format,
* so request the layer format through EGL_NATIVE_VISUAL_ID.
*/
attribute_list[1]=linfo.format;
/* Look for a compatible EGL frame buffer configuration */
if (eglChooseConfig(display, attribute_list, &config, 1, &num_config)==EGL_TRUE)
{
if (num_config>0)
{
break;
}
}
}
/* create a 3D rendering target */
if (gf_3d_target_create(&target, layer, NULL, 0, width, height, linfo.format)!=GF_ERR_OK)
{
fprintf(stderr, "Unable to create rendering target\n");
return -1;
}
gf_layer_set_src_viewport(layer, 0, 0, width-1, height-1);
gf_layer_set_dst_viewport(layer, 0, 0, width-1, height-1);
gf_layer_enable(layer);
/*
* The layer settings haven't taken effect yet since we haven't
* called gf_layer_update() yet. This is exactly what we want,
* since we haven't supplied a valid surface to display yet.
* Later, the OpenGL ES library calls will call gf_layer_update()
* internally, when displaying the rendered 3D content.
*/
/* create an EGL rendering context */
econtext=eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
//.........这里部分代码省略.........
开发者ID:ened, 项目名称:glues, 代码行数:101, 代码来源:tess.c
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19241| 2023-10-27
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:10001| 2022-11-06
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8331| 2022-11-06
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8701| 2022-11-06
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8647| 2022-11-06
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9672| 2022-11-06
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8632| 2022-11-06
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:8006| 2022-11-06
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8668| 2022-11-06
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7540| 2022-11-06
请发表评论