小编Tha*_*zer的帖子

OpenGL ES 2.0支持Android?

我已经看到了这个主题的多重看法,它开始让我感到困惑.我真的希望有人能给我一个明确的答案!:)

我想直言不讳:Android模拟器是否支持OpenGL ES 2.0?我见过有人说"是的,但你必须改变一些设置." 而且我也看过"不,它不支持它,期间." 以下是我尝试解决问题所做的工作,包括我收到的一些错误消息.

首先,我修改了AndroidManifest.xml以包含以下代码:

<uses-feature 
    android:glEsVersion="0x00020000" />

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="17" />
Run Code Online (Sandbox Code Playgroud)

然后,当我想实例化我的GLSurfaceView时,我使用这段代码来实例化它:

super(context);

setEGLContextClientVersion(2);

setRenderer(new MyRenderer());
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
Run Code Online (Sandbox Code Playgroud)

然后,我看到的任何地方都说你必须进入AVD管理器,选择模拟器,转到"硬件",添加"GPU模拟"并将布尔值设置为"是".然而,这是我看到我时所看到的:

我的Android 4.2模拟器窗口的屏幕截图.

特别的是我在AVD Manager中有另一个模拟器,我有"硬件"表:

我的Android 2.2模拟器有什么硬件表?

只是为了向您展示我正在做的事情,这里有一些代码可以完成我想在OpenGL ES 2.0中做的一些事情(我主要从Android自己的教程中得到这个):

int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode);
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode);

program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glLinkProgram(program);
Run Code Online (Sandbox Code Playgroud)

我不想改变我的代码回到使用OpenGL ES 1.0,因为这将需要很多麻烦,如果我可以避免它,我会.

最后,当我尝试运行我的程序时,程序以窗口关闭:"不幸的是,已经停止了." 这就是LogCat告诉我的:

12-05 06:16:27.165: E/AndroidRuntime(936): FATAL EXCEPTION: GLThread 81
12-05 06:16:27.165: E/AndroidRuntime(936): java.lang.IllegalArgumentException: No config chosen
12-05 06:16:27.165: E/AndroidRuntime(936):  at    android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:874)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
12-05 06:16:27.165: …
Run Code Online (Sandbox Code Playgroud)

android-emulator opengl-es-2.0

15
推荐指数
2
解决办法
1万
查看次数

x86程序集中"imul"指令的不熟悉语法

我写了一个非常基本的C函数叫做"multby22",它完全符合它的名字所暗示的:它需要很长的时间并且返回那么长的乘以22.(我知道这是一个没有意义的函数,但我写了它试图帮助我用x86汇编.)所以:

long multby22(long x) {
    return 22 * x;
}
Run Code Online (Sandbox Code Playgroud)

当我编译程序并在可执行文件上运行"objdump"时,我发现"multby22"的反汇编代码如下:

080483ff <multby22>:
   80483ff:       55                    push   %ebp              
   8048400:       89 e5                 mov    %esp,%ebp         // Create the stack frame.
   8048402:       8b 45 08              mov    0x8(%ebp),%eax    // Grab the argument and put it into the %eax register.
   8048405:       6b c0 16              imul   $0x16,%eax,%eax   // ???
   8048408:       5d                    pop    %ebp              // Pop the buffer pointer and return.
   8048409:       c3                    ret   
Run Code Online (Sandbox Code Playgroud)

我理解"imul"用于整数乘法,但我无法找到任何能帮助我使用这种语法的东西!我找到的最接近的是:

imul [reg] [reg] [const]
Run Code Online (Sandbox Code Playgroud)

...将第二个和第三个参数相乘,然后放入第一个参数,该参数必须是寄存器.在我生成的程序集中,第一个参数是常量!

c x86 assembly

5
推荐指数
1
解决办法
6711
查看次数

当修复破碎的标记时,BeautifulSoup丢弃文本

我对Python很陌生,但是到底是什么......这是一个奇怪的问题所以我会尽我所能尽力解释它:

我正忙着用Python编写一个脚本来检查一个网页是否有特定的变化(基本上从0翻到1的数字).当发生更改时,脚本将继续执行其他操作.不幸的是,我还没有达到这一点,因为我甚至在解析HTML时遇到了麻烦,因为BeautifulSoup抓住它时很多HTML都丢失了!(至少,这是我声称的.)

让我们一步一步:我正在使用BeautifulSoupMechanize为此而努力.首先,我在网页上找到一个表单并选择它,根据需要更改表单中的控件.(我已经验证了所有控件都按照我的预期更改.)之后,我提交表单,然后调用我编写的辅助函数调用process_results():

...
form = list(client.forms())[1]
client.select_form('ttform');
...
# Modify controls
...
client.submit()
process_results(client)
Run Code Online (Sandbox Code Playgroud)

process_results()只是检查客户回来了什么.首先,根据放入表单的内容,您可以获得无效的搜索结果,因此我想搜索网页上显示的错误消息,看看它是否存在.我BeautifulSoup用来做这个:

# Processes search results.
def process_serach_results(cli):

    html = cli.response().read()
    soup = BeautifulSoup(html)
    ...
Run Code Online (Sandbox Code Playgroud)

评估有问题的代码是否出现在页面上的语句如下所示:

...
if (soup.find('td', attr = {'class' : 'msgarea'}) != None):
    # Do something...
    ...
Run Code Online (Sandbox Code Playgroud)

这永远不会被评估为真,因为它找不到我正在描述的标签.我决定直接从打印出既响应MechanizeBeautifulSoup,这是我得到了(缩短):

Mechanize 打印我要找的代码,这意味着响应正确回复:

...
<TD class=msgarea>
<B class=important_msg>There was a problem with your request:</B>
<BR>
<BR>
<li class=red_msg>...</li>
...
</TD></TR></TABLE><P></DIV>
... …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup html-parsing

2
推荐指数
1
解决办法
928
查看次数