`
hereson3
  • 浏览: 162959 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

openGL贴图(借助glx),并测试性能(FPS)2

阅读更多

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环境正确安装以及学习如何在屏幕上渲染简单图形的程序。OpenGL,全称Open Graphics Library,是一个跨语言、跨平台的应用程序编程接口(API),它专门用于生成2D和3D图形。这个...

    C语言之制作一个Vulkan和OpenGL覆盖图,用于监控电脑FPS、温度、CPUGPU负载等(高分毕业设计)

    在本文中,我们将深入探讨如何使用C语言制作一个Vulkan和OpenGL覆盖图,该图用于实时监控计算机的性能参数,包括FPS(帧率)、温度、CPU及GPU的负载。这是一项高级的毕业设计项目,旨在展示对现代图形编程和系统监控...

    OpenGL for x window (1)

    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 ...

    OpenGL开发库(完整版)

    下载了 glut.lib glut32.lib glut.h glut.dll glut32.dll并放到了相应的文件夹中 但是在运行程序时还提示说缺少opengl.dll,我又下载了一个opengl.dll接着又运行,说又缺少了HfxClass45.dll,后来又提示还少个ipl.dll...

    OpenGL Programming for the X Windows System

    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 ...

    Opengl.zip_QT OpenGL_opengl_opengl qt linux

    在描述中提到“测试通过”,这意味着已经成功地编写并运行了使用QT和OpenGL的代码。通常,这包括设置OpenGL上下文,创建和编译着色器,设置顶点数据,定义渲染管线,以及在窗口上绘制图形。 标签"qt_opengl"、...

    OpenGL开发库 openGL函数手册 opengl 参考手册

    此外,为了在实际项目中使用OpenGL,开发者还需要熟悉窗口系统和上下文管理,比如在Windows上使用GLUT或FreeGLUT库,在Linux上使用GLX,在Mac OS X上使用Cocoa或Qt等。还要掌握错误检查和调试技巧,因为OpenGL往往...

    基于OpenGL编写一个简易的2D渲染框架 Simple2D 01

    10. **性能优化**:考虑到OpenGL的特性,Simple2D应鼓励批处理,即将多个图形操作合并成一次渲染调用,以减少GPU上下文切换的开销。 通过以上组件,Simple2D可以为开发者提供一个简洁、高效的2D渲染环境。开发者...

    opengl 2d还不错的时钟

    2. **OpenGL上下文**:在创建2D时钟之前,首先需要设置OpenGL上下文。这通常涉及窗口系统的交互,例如在Windows上使用GLUT库,在Linux上使用GLX,在macOS上使用Cocoa或Qt等。 3. **顶点坐标系统**:2D时钟需要定义...

    LINUX egl X11 opengl代码 可以直接运行

    LINUX egl X11 opengl代码 可以直接运行,包括makefile文件,可以参考编译

    opengl类学习文件

    在Linux上,OpenGL通常与GLX(OpenGL Extension to the X Window System)一起工作,为X Window系统提供硬件加速的2D和3D图形支持。 学习OpenGL的过程中,你将接触到顶点坐标、颜色、纹理、光照、投影、视口变换等...

    OpenGL_参考手册.rar

    本书第1章是OpenGL入门,第2章对命令和例程进行了简介,第3章集中介绍了各种命令和例程,第4章介绍了定义的常量和相关命令,第5章是OpenGL参考说明,第6章是GLU的参考说明,第7章是GLX的参考说明。 本书在翻译过程...

    GLX:GLX-Plugin - 用于监控和挂钩 OpenGL 调用的库

    GLX-Plugin是一个专为监控和挂钩OpenGL调用的库,主要应用于软件开发和图形性能分析。这个库基于C++编程语言,旨在帮助开发者更好地理解和优化他们的图形代码,尤其是在使用OpenGL进行3D图形处理时。 OpenGL是业界...

    OpenGL库和配置方法

    基于Microsoft Visual Studio的OpenGL库和配置方法,计算机图形学

    linux下opengl加载bmp、png、jpg格式图片

    程序功能:通过glx将x11和sdl创建的窗口联系起来(不是sdl-opengl的东西)供opengl渲染显示的小程序,其中bmp的是通过分析bmp文件格式读取位图数据和sdl_image两种方式加载,Png和Jpg文件格式比较复杂,所以直接使用...

    OpenGL编程参考手册

    较详细地阐述了OpenGL对输入数据的处理过程(用点形式来指定一个几何体或用像素形式来定义一幅图像时),并告诉你如何用OpenGL函数来控制这个过程。此外,在本章中还对GLU和GLX函数作了讨论。 第3章 命令和例程...

    OpenGL 参考手册02

    在OpenGL中,不同类型的命令被设计用来处理不同类型的任务,比如绘制基本图形对象(点、线、多边形等)、控制图像质量(反走样)、管理纹理贴图以及进行帧缓冲区操作。 **2. OpenGL处理流程** OpenGL处理流程包括...

    OpenGL基础课件

    2. 应用的广泛性:OpenGL 是目前最主要的二维、三维交互式图形应用程序开发环境,已成为业界最受推荐的图形应用编程接口。 3. 网络透明性:建立在客户 / 服务器模型上的网络透明性是 OpenGL 的固有特性。 4. 高...

    OPenGL参考手册

    在本书中,SGI的Dave Shreiner添加了OpenGL 1.2和GLX 1.3的大部分新的功能,并在David Yu的帮助下重新修订了图面。Norman Chin重新修订了GLU 1.3的参考说明。下列人员认真地进行了手册复审这一艰巨的工作,他们是:...

Global site tag (gtag.js) - Google Analytics