client.c
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/time.h>
#include <stdio.h>
static int s;
void initclient(char *ip)
{
long port=8000;
s=socket(PF_INET,SOCK_STREAM,0);
struct sockaddr_in sa;
sa.sin_family=AF_INET;
sa.sin_addr.s_addr=inet_addr(ip);
sa.sin_port=htons(port);
connect(s,(struct sockaddr *)&sa,sizeof(sa));
}
void gettime(struct timeval *ptp)
{
send(s,"a",2,0);
recv(s,(char *)ptp,sizeof(struct timeval),0);
}
/*
int main()
{
struct timeval tpstart,tpend;
init("127.0.0.1");
int utime;
while(1)
{
gettime(&tpstart);
sleep(2);
gettime(&tpend);
utime=1000*(tpend.tv_sec-tpstart.tv_sec)+(tpend.tv_usec-tpstart.tv_usec)/1000;
printf("sleep used time: %d ms\n",utime);
}
return 0;
}
*/
server.c
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/time.h>
int gettimeofday(struct timeval *tv,struct timezone *tz);
int main()
{
struct timeval tp;
char buf[10];
int sz;
long s,fd,port=8000;
struct sockaddr_in sa;
sz=sizeof(sa);
sa.sin_family=AF_INET;
sa.sin_addr.s_addr=htonl(INADDR_ANY);
sa.sin_port=htons(port);
s=socket(PF_INET,SOCK_STREAM,0);
bind(s,(struct sockaddr*)&sa,sz);
listen(s,5);
while(1)
{
fd=accept(s,(struct sockaddr *)&sa,&sz);
if (!fork())
{
while(1)
{
recv(fd,(char*)buf,10,0);
gettimeofday(&tp,NULL);
send(fd,(char *)&tp,sizeof(tp),0);
}
}
else
close(fd);
}
return 0;
}
使用TCP/IP协议获取时间的原因是如果测试程序运行在VmWare下获取的时间不精确。
另外,增加glFinish函数的目的也是解决虚拟机下程序执行和glx显示之间的延时问题。
//引用请注明来自hi.baidu.com/xqs83
分享到:
相关推荐
OpenGL测试例子是一个用于验证OpenGL环境正确安装以及学习如何在屏幕上渲染简单图形的程序。OpenGL,全称Open Graphics Library,是一个跨语言、跨平台的应用程序编程接口(API),它专门用于生成2D和3D图形。这个...
在本文中,我们将深入探讨如何使用C语言制作一个Vulkan和OpenGL覆盖图,该图用于实时监控计算机的性能参数,包括FPS(帧率)、温度、CPU及GPU的负载。这是一项高级的毕业设计项目,旨在展示对现代图形编程和系统监控...
This book also: *explains the GLX model for integrating OpenGL and Xlib *shows how to use OpenGL with Motif and other widget sets *discusses the latest OpenGL standards: OpenGL 1.1, GLX 1.2, and GLU ...
下载了 glut.lib glut32.lib glut.h glut.dll glut32.dll并放到了相应的文件夹中 但是在运行程序时还提示说缺少opengl.dll,我又下载了一个opengl.dll接着又运行,说又缺少了HfxClass45.dll,后来又提示还少个ipl.dll...
This book also: *explains the GLX model for integrating OpenGL and Xlib *shows how to use OpenGL with Motif and other widget sets *discusses the latest OpenGL standards: OpenGL 1.1, GLX 1.2, and GLU ...
在描述中提到“测试通过”,这意味着已经成功地编写并运行了使用QT和OpenGL的代码。通常,这包括设置OpenGL上下文,创建和编译着色器,设置顶点数据,定义渲染管线,以及在窗口上绘制图形。 标签"qt_opengl"、...
此外,为了在实际项目中使用OpenGL,开发者还需要熟悉窗口系统和上下文管理,比如在Windows上使用GLUT或FreeGLUT库,在Linux上使用GLX,在Mac OS X上使用Cocoa或Qt等。还要掌握错误检查和调试技巧,因为OpenGL往往...
10. **性能优化**:考虑到OpenGL的特性,Simple2D应鼓励批处理,即将多个图形操作合并成一次渲染调用,以减少GPU上下文切换的开销。 通过以上组件,Simple2D可以为开发者提供一个简洁、高效的2D渲染环境。开发者...
2. **OpenGL上下文**:在创建2D时钟之前,首先需要设置OpenGL上下文。这通常涉及窗口系统的交互,例如在Windows上使用GLUT库,在Linux上使用GLX,在macOS上使用Cocoa或Qt等。 3. **顶点坐标系统**:2D时钟需要定义...
LINUX egl X11 opengl代码 可以直接运行,包括makefile文件,可以参考编译
在Linux上,OpenGL通常与GLX(OpenGL Extension to the X Window System)一起工作,为X Window系统提供硬件加速的2D和3D图形支持。 学习OpenGL的过程中,你将接触到顶点坐标、颜色、纹理、光照、投影、视口变换等...
本书第1章是OpenGL入门,第2章对命令和例程进行了简介,第3章集中介绍了各种命令和例程,第4章介绍了定义的常量和相关命令,第5章是OpenGL参考说明,第6章是GLU的参考说明,第7章是GLX的参考说明。 本书在翻译过程...
GLX-Plugin是一个专为监控和挂钩OpenGL调用的库,主要应用于软件开发和图形性能分析。这个库基于C++编程语言,旨在帮助开发者更好地理解和优化他们的图形代码,尤其是在使用OpenGL进行3D图形处理时。 OpenGL是业界...
基于Microsoft Visual Studio的OpenGL库和配置方法,计算机图形学
程序功能:通过glx将x11和sdl创建的窗口联系起来(不是sdl-opengl的东西)供opengl渲染显示的小程序,其中bmp的是通过分析bmp文件格式读取位图数据和sdl_image两种方式加载,Png和Jpg文件格式比较复杂,所以直接使用...
较详细地阐述了OpenGL对输入数据的处理过程(用点形式来指定一个几何体或用像素形式来定义一幅图像时),并告诉你如何用OpenGL函数来控制这个过程。此外,在本章中还对GLU和GLX函数作了讨论。 第3章 命令和例程...
在OpenGL中,不同类型的命令被设计用来处理不同类型的任务,比如绘制基本图形对象(点、线、多边形等)、控制图像质量(反走样)、管理纹理贴图以及进行帧缓冲区操作。 **2. OpenGL处理流程** OpenGL处理流程包括...
2. 应用的广泛性:OpenGL 是目前最主要的二维、三维交互式图形应用程序开发环境,已成为业界最受推荐的图形应用编程接口。 3. 网络透明性:建立在客户 / 服务器模型上的网络透明性是 OpenGL 的固有特性。 4. 高...
在本书中,SGI的Dave Shreiner添加了OpenGL 1.2和GLX 1.3的大部分新的功能,并在David Yu的帮助下重新修订了图面。Norman Chin重新修订了GLU 1.3的参考说明。下列人员认真地进行了手册复审这一艰巨的工作,他们是:...