OpenGL ES API with no current context

这个问题是因为Android在启动cocos2d-x的Thread时,没有用context的主的Thread,而是使用的OpenGL的Thread,所以我们不能在主Thread去完成 本应该是在cocos2dx中OpenGL Thread中 完成的工作(即所调用的函数在Cocos2dx中做的工作), 必须使用OpenGL的Thread去完成︰

public static native void nativeCallback(String code, String params); //原本程序中调用的java函数

public static void runNativeCallback(final String code, final String params)//增加此函数,修改后在调用nativeCallback的地方调用runNativeCallback即可
{
Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable(){
@Override
public void run()
 {
nativeCallback(code, params);//在此调用原函数
}
});
}

时间: 2024-10-22 03:26:53

OpenGL ES API with no current context的相关文章

call to OpenGL ES API with no current context 和Fatal signal 11

近日在用cocos2dx3.4的时候使用了JNI调用,发现一个现象 当不使用jni的时候完全正常,使用了jni后回去的所有文字都变成黑块,并且有概率程序崩溃,附带出了两个log call to OpenGL ES API with no current context  和 Fatal signal 11 但同样的cocos2dx ,同样的jni代码,另一个项目却正常.找寻了好久之后发现了原因 cocos2dx 3.x以后版本 不再是一个进程跑到底: 引用:"Cocos2d-x从2.x版本到上周

OpenGL ES之GLSurfaceView学习一:介绍

原文地址::http://120.132.134.205/cmdn/supesite/?uid-5358-action-viewspace-itemid-6527 GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染. GLSurfaceView提供了下列特性: 1> 管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上. 2> 管理一个EGL display,它能让opengl把

android graphic(14)—EGL和OpenGL ES之间的关系

OpenGL ES EGL 例子 EGL加载OpenGL ES库 涉及的库 库的加载 小结 OpenGL ES 什么是OpenGL? Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to intera

Develop -- Training(十六) -- 显示绘图和OpenGL ES

Android framework提供了许多标准的工具,来创建有吸引力的.功能丰富的用户图形界面.但是,如果你想要更多的控制权,比如在应用程序的屏幕上绘图,或者冒险进入三维图形,你需要使用不同的工具.通过Android framework提供的OpenGL ES的API提供了一套显示高端的工具,动画图像超出你的想象,许多Android设备的图像处理单元得到了加速(GPUs). 这节课主要开发一个OpenGL应用程序.包括设置.画对象.移动对象元素.响应触摸输入事件. 这节课的示例代码使用的是Op

Android OpenGL ES: 第一个程序

1. 概要 OpenGL是桌面环境下的绘制,渲染三维图形的API. OpenGL ES是在Android环境下的OpenGL. 在Android中OpenGL需要在GLSurfaceView中渲染,渲染控制函数在GLSurfaceView.Renderer中.接下来会介绍如何创建第一个OpenGL程序 2. 配置AndroidManifest (1)声明OpenGL ES API <uses-feature android:glEsVersion="0x00020000" and

Android OpenGL ES 离屏渲染(offscreen render)

通常在Android上使用OpenGL ES,都是希望把渲染后的结果显示在屏幕上,例如图片处理.模型显示等.这种情况下,只需要使用Android API中提供的GLSurfaceView类和Renderer类,在这两个类提供的初始化.回调函数中设置/编写相应的代码即可.不过,如果不希望把渲染结果显示在屏幕上,也就是所说的离屏渲染(offscreen render),这两个类就帮不上忙了.在此介绍一下如何在Android系统上做OpenGL ES 的离屏渲染. 1.基础知识 要想使用OpenGL

[转] iOS OpenGL ES Guide

OpenGL ES 小结 概述 OpenGL ES (Open Graphics Library for Embedded Systems)是访问类似 iPhone 和 iPad 的现代嵌入式系统的 2D 和 3D 图形加速硬件的标准. 把程序提供的几何数据转换为屏幕上的图像的过程叫做渲染. GPU 控制的缓存是高效渲染的关键.容纳几何数据的缓存定义了要渲染的点.线段和三角形. OpenGL ES 3D 的默认坐标系.顶点和矢量为几何数据的描述提供了数学基础. 渲染的结果通常保存在帧缓存中.有两

android opengl es 源码

[转自:http://blog.csdn.net/happyhell/article/details/6086973] The entire OpenGL ES API on Android is implemented in three libraries, located under /system/lib (for more information about OpenGL ES visit the official Khronos page): * libEGL.so: implemen

Mali GPU OpenGL ES 应用性能优化--测试+定位+优化流程

1. 使用DS-5 Streamline定位瓶颈 DS-5 Streamline要求GPU驱动启用性能测试,在Mali GPU驱动中激活性能测试对性能影响微不足道. 1.1 DS-5 Streamline简介 可使用DS-5 Streamline从CPU和Mali GPU中实时收集性能计数器,然后以图形方式显示这些计数器,其主要功能如下:     ? 收集计数器--从CPU和Mali GPU中     ? 保存收集到的计数器数据以供回放     ? 查看显示GPU活动.GPU活动和Framebu