小编Sud*_*n S的帖子

是否需要双缓冲

因为今天的卡似乎保留了一个渲染命令列表,并且仅在调用时刷新,glFlush或者glFinish是否真的需要双缓冲?我在Linux(ATI Mobility radeon卡)上使用SDL/OpenGL开发的OpenGL游戏实际上在初始化代码中SDL_GL_swapbuffers()被替换为glFinish()和更少时闪烁SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,0).这是我的卡的特殊情况还是所有卡上都有这样的情况?

编辑:我发现原因是KWin.似乎正如datenwolf所说,合成没有同步是原因.当我关闭KWin合成时,游戏在没有任何源代码补丁的情况下工作正常

opengl sdl-opengl

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

如何在numpy.ndarray中找到最后一次出现的最大值

我有一个numpy.ndarray,其中最大值将多次出现.

编辑:这与numpy.argmax略有不同:如果多次出现最大值,如何获取对应于*last*出现的索引,因为作者说

或者,更好的是,是否可以获得数组中所有最大值出现的索引列表?

而在我的情况下,获得这样的清单可能会非常昂贵

是否可以通过使用类似的东西找到最后一次出现的最大值的索引numpy.argmax?我想查找最后一次出现的索引,而不是所有出现的数组(因为可能有几百个)

例如,这将返回第一次出现的索引,即2

import numpy as np
a=np.array([0,0,4,4,4,4,2,2,2,2])
print np.argmax(a)
Run Code Online (Sandbox Code Playgroud)

但是我希望它输出5.

numpy scipy

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

Freepascal真的使用*远*比gcc更少的内存

在语言枪战基准http://benchmarksgame.alioth.debian.org/表明FPC程序使用约1 /第50次的存储器的,使用克++使用比较的方案.难道这些基准无意青睐FPC或者是难道真的是FPC是要比G ++好?我一直认为这些基准测试是一系列不错的微基准测试,所以我对这些结果感到惊讶,因为50倍是相当重要的恕我直言.

参考文献:

http://benchmarksgame.alioth.debian.org/u32/pascal.php http://benchmarksgame.alioth.debian.org/u64q/pascal.html

编辑: 这变得更加有趣,因为这个页面声称pascal只使用了8KB的一些程序,这看起来非常低

g++ freepascal fpc

9
推荐指数
2
解决办法
2778
查看次数

使用python的SocketServer和Children将额外的元数据传递给RequestHandler

我正在实现一个使用的python应用程序ThreadingTCPServer和一个自定义子类BaseRequestHandler.这个问题是ThreadingTCPServer似乎自动生成线程并创建处理程序的实例,调用它们的handle()函数.然而,除了使用全局变量或类变量之外,这使得我无法将数据传递给处理程序,这两者似乎都是hackish.有没有更好的方法呢?

理想情况下,这应该是这样的:

class ThreadedTCPServer(ThreadingTCPServer):
    def process_request(self, *args, **kwargs):
        ThreadingTCPServer.process_request(self, data, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

与处理程序一样

class ThreadedTCPRequestHandler(BaseRequestHandler):
    def handle(self,data):
        #do something with data
Run Code Online (Sandbox Code Playgroud)

python sockets

8
推荐指数
2
解决办法
3683
查看次数

使Windows刷新图标缓存

我真的很喜欢KDE SC 4的氧气外观.我写了一个程序将这些图标应用到windows.该程序是用NSIS编写的,目前几乎完全正常运行.但是,我发现让Windows了解图标更改的唯一方法是杀死explorer.exe,删除图标缓存,并重新生成explorer.exe.SHChangeNotifySHCNE_ASSOCCHANGED似乎无法使Windows知道的更改控制面板图标,我的电脑图标,等请提出一个更好的,那么残酷的方法来让Windows识别这些更改.

编辑:我发现了一个名为Icon Tweaker的程序似乎能够做到这一点,但它是封闭的来源,所以我不知道它是如何做到的.(IconTweaker:http://www.crystalxp.net/galerie/en.id.83-icontweaker.html )

编辑:感谢Anders的回复(见下文),我的工作正常.但是,我会把我工作的NSIS代码放在这里,万一其他人需要它

ReadRegStr $0 HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size"
IntOp $0 $0 + 1
WriteRegStr HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size" $0
SendMessage 0xffff 0x001A 42 0 /TIMEOUT=100000
IntOp $0 $0 - 1
WriteRegStr HKCU "Control Panel\Desktop\WindowMetrics" "Shell Icon Size" $0
SendMessage 0xffff 0x001A 42 0 /TIMEOUT=100000
Run Code Online (Sandbox Code Playgroud)

$ 0寄存器用于存储Shell Icon SizeHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics.然后我们递增值并执行a SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0, SMTO_ABORTIFHUNG, 100000, NULL),然后递减并重新发送.

编辑:作为奖励,这可以用作在Windows …

windows icons nsis windows-shell shell-icons

5
推荐指数
2
解决办法
6234
查看次数

今天OpenGL中NPOT纹理的状态

我正在编写一个在sdl下使用2D OpenGL输出的游戏,我正在尝试使用SDL_ttf加载文本.但是我必须用空白像素填充文本,因为看起来普通的OpenGL不支持两个纹理的非幂.我听说有一个名为OpenGL的扩展GL_ARB_texture_non_power_of_two,可以实现两个纹理的无功能.到目前为止有多少张卡与此扩展程序不兼容,如何加载它?

opengl sdl sdl-ttf

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

是否有可能破解GTK渲染到OpenGL纹理

我正在编写一个OpenGL游戏,并希望看到原生的GUI元素.我想知道是否有人成功攻击GTK +使用GtkOffscreenWindowgtk_offscreen_window_get_pixbuf渲染到OpenGL纹理,以及这是否具有合理的性能,考虑每次更新GUI时重复重新上传纹理数据

gtk opengl

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

如何使用glDrawElements为tex coords数组和顶点数组使用不同的索引

我一直在尝试glDrawElements在基于磁贴的2D OpenGL游戏中使用.然而,当我绘制切片时,同一顶点的不同面的tex坐标可能不同:例如,这里texcoords对于公共顶点处的2个四边形将是不同的:

___|
___|___
   |___
   |___
Run Code Online (Sandbox Code Playgroud)

问题是glDrawElements只需要一个索引数组,因此看起来每个顶点只能使用一个tex坐标.有没有办法克服这个限制?

opengl

4
推荐指数
1
解决办法
1604
查看次数

g_slice真的比malloc快吗?

GLib文档建议在malloc上使用GLib Slice Allocator:

"对于新编写的代码,建议使用新的g_slice API而不是g_malloc()和朋友,只要对象在其生命周期内没有调整大小,并且在分配时使用的对象大小在释放时仍然可用." - http://developer.gnome.org/glib/unstable/glib-Memory-Slices.html

但实际上g_slice明显快于Windows/Linux malloc(速度足以保证处理大小和GLib预处理器黑客的额外麻烦g_slice_new)?我打算在我的C++程序中使用GLib来处理INIish配置(GKeyFile)并获得对C++中不可用的数据结构的访问GHashTable,因此无论如何GLib依赖都无关紧要.

malloc glib

3
推荐指数
2
解决办法
2442
查看次数

Qt显示带文本输入的消息框

有没有简单和干净的方法来显示与文本输入支持的Qt4(PyQt4的实际上)一个消息框,而不是从预定义列表只选择按钮?我可以(而且已经部分)通过编写一个自定义类来完成这个,只是为了显示这样的对话框,但是不是更清洁的方法吗?

编辑:感谢Luca Carlon我的工作.但是,万一其他人需要这个,我将在下面发布工作PyQt4代码

from PyQt4.QtGui import QInputDialog
#This code works only inside a method of a widget or window as self must refer to a
#valid widget or window to get the correct modality, although we can give None instead
(text,truth)=QInputDialog.getText(self,"Get text","User name",QLineEdit.Normal,"NoName")
if truth:
    #The user has accepted the edit, he/she has clicked OK
    print text
else:
    #The user has not accepted the edit, he/she has clicked Cancel
    print "No change"
Run Code Online (Sandbox Code Playgroud)

qt pyqt

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

即使所有数据频繁变化,VBO也能提升性能

我正在做一个基于2D回合的RTS游戏,使用32x32平铺(每帧400-500个平铺).我可以使用一个VBO,但我可能不得不每帧更改几乎所有的VBO数据,因为背景是滚动的,每次地图滚动时可见的瓷砖都会改变.使用VBO而不是客户端顶点阵列仍然会在这里产生性能优势吗?另外,如果使用哪种数据格式效率最高的VBO(float,或int16,还是......)?

opengl

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

标签 统计

opengl ×5

fpc ×1

freepascal ×1

g++ ×1

glib ×1

gtk ×1

icons ×1

malloc ×1

nsis ×1

numpy ×1

pyqt ×1

python ×1

qt ×1

scipy ×1

sdl ×1

sdl-opengl ×1

sdl-ttf ×1

shell-icons ×1

sockets ×1

windows ×1

windows-shell ×1