自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 How do I Make Glut's Multisample Working on Microsoft Windows

        Well,when I read OpenGL Programming Guide(the fifth Edition),I found something very interesting about how to use multisample easily with the help of glut libary.It said that the only thing

2008-03-08 16:51:00 3379 4

原创 Linux & Windows TLS实现

Linux的TLS(Thread Local Storage)实现由内核和用户两部分模块配合完成的。    内核对TLS需要做的事情是能够让用户态程序(通常是 nptl——一个pthread的实现)在某个时刻能够设置线程唯一的基址值到内核的线程信息结构内。系统调用set_thread_area(x86)和prctl(X86_64)用来完成这个任务。在x86家族中,这些系统调用能够设置fs(x8

2011-12-08 13:22:31 6780

原创 Using the Code Coverage Tools from the Command Line

<br /><br />Visual Studio provides two command line tools that you can use to instrument an artifact, such as a .dll or .exe, and generate code coverage data: vsinstr.exe and vsperfmon.exe. These tools can be found at: n:/Program Files/Microsoft Visual Stu

2011-05-11 08:43:00 1305

原创 Skia OpenGL Texture Helloworld

<br />这年头神马都要炫,这不,我就开始研究Skia了。先上一个Skia画在opengl texture上面的圆角矩形。<br />以下代码:<br />#include <SkDevice.h>#include <SkDraw.h>#include <SkRect.h>#include <memory>#include <GL/gl.h>#include <GL/glut.h>#include <stdio.h>#include <stdlib.h>static voi

2011-04-30 22:05:00 4830

原创 编译ARM GCC要点

<br /><br />准备<br /> <br />需要准备binutil包,需要g++支持的需要准备g++包。gcc core当然是必备的。编译最新的4.5.0版需要准备另外一些包,他们在config gcc的时候会说明,都拿下来编译即可。另外需要准备newlib,它很小,适合手机。<br /> <br /> <br />要点一 不可以在编译目录下面config,make<br /> <br />为了做到要点一,我们需要mkdir另外一个子目录。如<br />mkdir build<br />cd bu

2011-03-11 07:23:00 828

原创 原来在Windows下面也能编译binutil

<br />binutil看来只要有gcc就满足了,posix的系统调用都不需要。所以只需要./configure make就搞定……

2011-03-10 23:33:00 684

原创 测试amd cpu对intel sse指令集的支持情况

<br /> <br />首先测试下sse4.1,源代码如下<br />#include <stdio.h>#include <smmintrin.h>int main(){__m128i a, b;char * psA = (char * )&a;char * psB = (char * )&b;int i = 0 ;for( ; i < 16; ++i){psA[i] = 0xcc; psB[i] = 0x33;}int sResult = _mm_t

2011-03-05 08:55:00 5982

原创 如何使用git merge 一系列的commits

<br /><br />先来说说git所保存的对象。对于git来说,commits,文件,branches都是一些对象。commits保存的是一些文本文件之间diff(只对文本文件来说)。所谓的merge就是把那些diff在某些commit点上面重播(replay)一次。<br />可是git的merge没有直接merge一系列commits的功能。对于一个commit,我们可以使用cherry-pick来把那个commit replay到其它commit点上面。对于一系列的commit,这样做很麻烦,假如

2010-10-22 10:43:00 15356 1

原创 Linux 信号处理,是否同一个线程组的线程收到SIGSEGV其它线程都会被挂起

   为了回答以上问题,写了下面测试程序#include #include #include #include #include static void * thread_routine(void *);static void sighandler(int);int main(){ int ret; struct sigaction sa={

2010-05-04 14:28:00 1499

原创 如何改变netbeans的look and feel

在netbeans目录下面的etc目录找到netbeans.conf,在netbeans_default_options下面加入你想要的laf即可,比如 --laf com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 

2010-04-02 10:36:00 874

原创 如何高效的預分配磁盤大小給文件

有時候,預分配一定大小的文件,然后用Memory Mapping的方式讀寫它,會得到較高讀寫的性能,和較小的磁盤碎片,當然還有更長的磁盤壽命。因此文件系統的實現最好有優化預分配的版本,而操作系統最好有有關的API。絕大部分文件系統有可能對預分配進行優化。比如FAT,能夠通過直接操作FAT表來使得某個文件獲得指定的大小,而不必瘋狂地往磁盤寫0,不過經過測試,Windows和Linux都不支持相關操作

2010-02-17 21:39:00 2513

原创 如何在Ubuntu编译Linux内核

首先需要下载Linux kernel,在www.kernel.org里面下载。然后需要安装kernel-package,fakeroot。这样准备工作就完成了。下面开始内核的配置。最重要的一点是去掉kenerl hacking选项卡下面的“编译内核带有debug信息”选项,否则编译出来的内核无比庞大。然后根据个人需要去掉一些驱动。不过必须清楚知道自己在干什么,否则启动不了是很正常的。

2010-01-29 08:49:00 964

转载 怎么让Ubuntu9.10记住授权

 sudo gedit /usr/share/polkit-1/actions/org.freedesktop.devicekit.disks.policy找到这个段:org.freedesktop.devicekit.disks.filesystem-mount-system-internal在这个段里找到下面这一行:auth_admin_keep替换成:yes

2009-11-26 10:19:00 413

原创 OpenGL 小bug大烦恼

 1.假如不在glTexImage2D之前调用glTexParamter{if}{v}那么这张贴图就废了。

2009-11-23 11:09:00 396

原创 Python C API关于GIL的细节

 GIL的创建是手动的。意味着单线程的Python程序运行起来是没有任何问题的,也没有关于锁的损失。thread库等Python标准库会在内部调用PyEval_InitThreads()来创建GIL。而在嵌入式的Python(Embeded Python),则需要手动地调用此函数。   在嵌入式Python中,我们还需要在主线程使用线程时,把线程开始运行的代码放在Py_BEGIN_AL

2009-11-15 13:52:00 881

原创 如何使KDE下面gksudo运行的程序变得和系统的Theme一致

 运行sudo ln -s ~/.gtkrc-2.0-kde4 /root/.gtkrc-2.0即可……

2009-11-02 18:58:00 547

原创 如何 使用Kubuntu的Windows文件共享

  <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> Windows下面的文件共享真是好东东啊,能够让Windows计算机在局域网内互相可见,而且令共享文件相当简单,只需要把指定的文件夹指定为共享即可,而且客户端计算机真的可以把那些网上的文件夹真的当作是本机文件夹对待,可

2009-11-02 18:50:00 1797 4

原创 09百度笔试记

    今天去了百度笔试。做的是RD-1的题目。先说说题目吧。    第一题是描述树的深度遍历,广度遍历和非递归实现的特点。基本数据结构,简单。    第二题是改错。程序如下:  1 typedef {  2     int num;  3     int imag;  4 }Complex_t;  5   6 int alloc(Complext_t * a,

2009-10-14 09:08:00 1678 6

原创 __cdecl相比__stdcall的优势

    呼叫X86函数的时候有两种清理堆栈的方式,在扩展的C/C++里面分别用__cdecl和__stdcall在函数声明和定义里面表示。函数的参数是用压入堆栈的方式使得函数能够通过访问堆栈访问相应的参数。比如以下函数声明:void foo(int num);    呼叫它的时候,计算机会使用以下汇编代码:pushl %numcall foo    假定是32位的X86,完成c

2009-09-18 16:01:00 1718 1

原创 学习Linux内核的方法小结

假定你会C语言,而且明白C语言面向对象编程的schme,对操作系统(包括调度,内存分配,分页,同步,etc)比较了解。那么你可以按照如下顺序学习Linux 内核。   1.看Linux DeviceDriver这本书。这是为了让你懂得编译内核模块的方法。还有为Linux各种设备留下一些印象。同时一遍看书一边看某些设备的源代码,推荐看如下几个设备的源代码:mem,raw,hidmou

2009-08-19 12:59:00 496

原创 为什么编译内核模块出现XXXfunction undefined的警告

这个问题是我遇到N次的。今天发现gcc是根据/lib/modules/unmame -r/module.symbols这个文件里面的symbol判断的 ,而不是/proc/kallsyms里面的symbol判断的。(我再次诅咒郑K不回答这个问题)。

2009-08-15 15:58:00 1274

原创 Linux内核编程tips

NO.1 Do NOT make you process sleep when you are in the atomiccontext,especially,when you are holding a spinlock,seqlock or RCU lock.NO.2If your device interrupt services are to acquire a spinloc

2009-08-12 14:21:00 283

原创 C/C++和Java(C# maybe)中的volatile关键字的作用

嗯……很多程序员看见C/C++中的关键字volatile的时候不禁莫名其妙:这个关键字有什么作用?我第一次看见时候很很好奇,看见C/C++ 文档道:用于声明变量能够被外部环境(比如中断,其他硬件,其他线程)修改。呃…但是没说为什么要作如此声明,不做声明有什么后果。      好……这并不是什么深奥的道理,需要声明的原因在于所有CPU都有寄存器。在处理数据时候,数据或者它们的引用地址大都

2009-08-11 19:28:00 1564 1

原创 Linux内核印象

第一次写了个Linux 内核模块。感觉Linux内核的设计确实是高度模块化,非常精巧的东东。现在写写对它的初步印象。   模块化程度极高。整个内核就像一个巨大的linker(链接器),当它碰到模块没有被解释的符号的时候,居然能像链接器那样尝试解释它。这个特点极大的方便了程序员编写代码。因为你不需要链接任何的库文件(.lib)。相比Windows的WDM来说,这是一个非常大的优势。WDM

2009-08-11 19:27:00 672

软件调试的艺术

The Art of Debugging with GDB,DDD,Eclipse

2011-09-13

OpenGL Shadow volume

A demo shows the effect of shadow volume using z-pass method.

2008-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除