我正在学习一个3D opengl的地方,而且相当不错,我现在有一个漂亮的相机和一些简单的立方体物体.目前正在使用顶点数组,但我在这里很快就交换到了VBO.我只是想尝试剔除,但是我不确定我应该指定我的顶点的顺序,现在这就是我正在做的事情:
void cube::update_verts(){
GLushort cur=0;
///back face
verts[cur++]=x; verts[cur++]=y; verts[cur++]=z;
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z;
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z;
verts[cur++]=x; verts[cur++]=y+sy; verts[cur++]=z;
///right face
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z;
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z;
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z+sz;
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z+sz;
///top face
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z;
verts[cur++]=x; verts[cur++]=y+sy; verts[cur++]=z;
verts[cur++]=x; verts[cur++]=y+sy; verts[cur++]=z+sz;
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z+sz;
///front face
verts[cur++]=x; verts[cur++]=y; verts[cur++]=z+sz;
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z+sz;
verts[cur++]=x+sx; verts[cur++]=y+sy; verts[cur++]=z+sz;
verts[cur++]=x; verts[cur++]=y+sy; verts[cur++]=z+sz;
///bottom face
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z;
verts[cur++]=x; verts[cur++]=y; verts[cur++]=z;
verts[cur++]=x; verts[cur++]=y; verts[cur++]=z+sz;
verts[cur++]=x+sx; verts[cur++]=y; verts[cur++]=z+sz;
///left face
verts[cur++]=x; verts[cur++]=y+sy; …Run Code Online (Sandbox Code Playgroud) 是否有一种方法通常用于检查int /其他数据类型中是否存在标志?我想出这样的事情:
if ((host&flagtocheckfor)==flagtocheckfor)
Run Code Online (Sandbox Code Playgroud)
哪个工作正常 - 但是这种常见的设置标志的方法是通常检查标志的方式吗?还是有更简洁的方法?
只是更异步的东西!
好吧,所以我现在有一个工作异步套接字程序用于我的主要聊天应用程序,它的工作非常好!不过我有一个问题..
使用select()时,我可以在每个集合中使用的文件描述符的最大数量是多少?我读过有关1024的限制......
如果该限制确实是硬编码的并且我不能将该限制FD_SETSIZE更高,那么一旦达到该限制,我是否应该生成另一个线程?或者是其他东西?这甚至是一个问题吗?
我正在为我的ubuntu服务器实现一个简单的线程池机制(对于我的多客户端匿名聊天程序),我需要让我的工作线程休眠,直到需要执行一个作业(以函数指针和参数的形式) .
我现在的系统正在窗外.我(工作者线程)询问经理是否有工作,如果没有睡眠5ms.如果有,请将作业添加到工作队列并运行该功能.可怜的循环浪费.
什么我喜欢做的是做一个简单的事件性的系统.我正在考虑使用互斥体向量(每个工作一个),并在创建时将传入的互斥锁作为参数传递.然后在我的经理类(保存并分发作业)中,每当创建一个线程时,锁定互斥锁.当需要执行作业时,解锁下一个互斥锁,等待它被锁定和解锁,并重新锁定它.但是我想知道是否有更好的手段来实现这一目标.
tldr; 所以我的问题是这个.什么是使线程等待管理类工作的最有效,最有效和最安全的方法?轮询我应该考虑的技术(一次超过1000个客户端),互斥锁是否正常?还是有其他技术?
我正在为一家公司创建一个网络管理程序,我正在做一些合同工作(我认为无关紧要)
作为该计划的一部分,我想有一个控制台/ telnet(类型)克隆.我有一个工作目录系统,我可以在其中读取目录中的所有文件,并更改目录.我也有一个简单的FTP协议设置.但是,我想以编程方式随意地使用标准输入/输出程序对不同的程序说话.我并不反对DLL注入技术和其他方法,因为这是一个良性的程序.如果可能的话,如果我可以轻松直接使用控制台,那将是非常棒的.(system()可能会工作,但这不允许继续通信或读回输出)
到目前为止,我正在考虑抓住PATH环境变量并将其用于std命令(ipconfig,netstat等)我的网络库使通信变得简单,但我只是不确定如何与程序的控制台进行交互......
TL; DR:
程序之间是否有任何预定义的标准控制台通信方式?
好吧,所以我正在为iPhone制作一个简单的聊天应用程序,我有一些运气,它运行良好,看起来很神奇但是我有一些问题,一个这样的问题是我向用户显示富文本的方式. .
目前我有一个荒谬的系统,就像这样
{发送数据/接收数据 - >添加到变量allText(一切都在html中)
在后台加载带有allText的webview(有两个可用),当它完成加载时,使其可见.(对于那些熟悉游戏编程的人来说,这基本上是双缓冲)
}
我被告知您可以使用JavaScript动态地将html添加到webview中.我试了一下,然后悲惨地失败了.从来没有使用过javascript我不知道整个系统是如何工作的,而且我现在的系统工作得很好,所以我宁愿坚持下去,也不愿学习整个脚本语言.
所以我的问题是这个.我怎么能写一个函数(在obj-c中)来附加一个带有富文本的uiwebview?
我已经尝试了几次,但我不确定我放置标签的位置,或者我是否需要标签.我使用js将uiwebview滚动到已加载数据的底部,但这是一个我无法制作的预制函数.
-(void) addToWebView: (NSString *) toAdd{
NSString *java = [NSString stringWithFormat: @"javascript : %@",toAdd];
[classWebView stringByEvaluatingJavaScriptFromString:java];
}
Run Code Online (Sandbox Code Playgroud)
^这就是我认为应该看起来的样子,我只是不知道该怎么用于javascript!
所以我想从文件中加载一组汇编指令,然后执行这些指令.
要么
我想从文件中再次加载已编译的机器代码(非exe)
我的想法:
到目前为止,我已经学会了足够的内联asm来轻松使用c/c ++变量.
asm volatile (
"mov %1, %%ecx;" // yes unnecessary, I know
"add %2, %%ecx;" // I know they're already loaded in a register
"mov %%ecx ,%0 ;"// just demonstrating what I've learned
:"=r"(address)
:"r"(address),"r"(offset)
:"%ecx"
);
Run Code Online (Sandbox Code Playgroud)
我已经开始学习操作码,我已经获得了一些x86手册.我(在某种程度上)了解硬件如何在基本级别上工作.
我知道我可以使用带有fstream的c ++将文件加载到内存中,我想知道是否有一种方法可以从该空间执行内存,或者它是否在内存的不可执行部分或某些内容中.
原因:
目前有几个原因我想这样做.我希望为我的程序创建一个基本的 encyption,用于运行程序的简单键.虽然我可以轻松地加密和解密实际代码,但我希望程序在每次运行时都不加密,并且永远不会存储在硬盘上.我知道几个问题,但是我对这样做非常感兴趣.
最后问题:
我可以从asm中的c ++程序中的内存空间执行机器代码吗?
是必要的吗?
是否有其他方法可以更有效地完成此任务,如果是,那些方法是什么?
我正在阅读我正在制作的鼠标共享程序的一些DLL注入(两台计算机彼此相邻,都有显示器,但是你只有一个鼠标/键盘.我想知道我在哪里可以找到关于这个主题的一些很好的资源?谷歌一直很有帮助,但我对一些IRC频道或类似的东西很感兴趣.无论如何,感谢阅读!
我有一个指向对象指针向量的指针
vector<object*>* vec;
Run Code Online (Sandbox Code Playgroud)
这恰好保存了当前可能与另一个对象发生碰撞的对象的信息.这很棒 - 但是我需要按照与根对象的距离来对这个向量进行排序,我不知道最好的方法.
目前,该对象对另一个结构的另一个临时向量进行排序
struct tempsort{
int distanceFromObject;
object* obj;
}
Run Code Online (Sandbox Code Playgroud)
使用这样的函数:
bool sorter(tempsort* first, tempsort* second){
return first->distanceFromObject < second->distanceFromObject;
}
Run Code Online (Sandbox Code Playgroud)
执行:
vector<tempsort*> tosort;
for (int a = 0; a < vec->size(); a++){
tosort.push_back(new tempsort);
tempsort.distanceFromObject = distanceBetweenObjects(host,(*vec)[a]);
tempsort.obj=(*vec)[a];
}
sort(tempsort.begin(),tempsort.end(),sorter);
Run Code Online (Sandbox Code Playgroud)
该对象现在可以解决冲突.
Tempsort的对象现在已被删除.
但是我真的想要对原始矢量进行排序,而不是创建这个临时矢量.那可能吗?如果是这样,怎么样?