自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老猫的专栏

勤能补拙

  • 博客(70)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android OpenGL ES

都说android上没有一款好的游戏引擎,原因都说是硬件差异太大,编写游戏引擎时(一般用opengl es)不是所有的api都能用。这是真的吗?最近在android上使用opengl es时,确实发现兼容性要比自己想像中的差。写的程序在模拟器中运行正常,在真机中运行却有很多问题,有的时候直接死机,有的时候画出来是一片白色。例如:(1) glView.getHolder().setFor

2012-01-07 00:40:01 495

原创 android笔记3(surfaceview)

SurfaceView使用Surfaceview的好处是可以自己控制屏幕刷新,还不像一般的View是通过界面消息来进行屏幕更新的。这在游戏中特别有用,因为游戏需要实时的更新画面,以反映游戏进程。使用Surfaceview时,一般会开启一个线程,在线程中进行游戏逻辑和屏幕更新;一般需要实现SurfaceHolder.Callback接口,在surface创建时创建和启动线程,在surfa

2012-01-07 00:36:47 515

原创 android快速遍历目录及查找文件

java中遍历目录,可以使用递归的方法: SearchFile(File[] files) { for (File file : files) { if (file.isDirectory())//若为目录则递归查找 { SearchFile(file.listFiles()); } else if (file.isFile

2012-01-06 23:16:53 7268 2

原创 Android异步处理

在Android 中,不能在主UI线程里处理耗时操作,否则会造成阻塞,时间过长时(超过5秒),甚至造成系统提示是否要kill该进程。(1)使用线程注意不能在非主UI线程中更新界面,有时需结合Handler使用.prgDialog = ProgressDialog.show(GbcJoy.this,"wait","data loading...", true);Thread th =

2012-01-04 21:38:10 834

原创 GbcJoy - android上的GBC模拟器

看图先: GbcJoy是一个简单易用的GBC/GB游戏模拟器,支持声音、进度载入和保存、虚拟键盘、屏幕切换等. 重温儿时梦想,享受休闲时光.请帮助点击广告,支持个人软件。版本需求:android 2.1及以上下载: http://yunfile.com/ls/gbcjoy/使用方法:1. 安装新版软件时请先卸载旧的版本;2. 打开程序后,从文件列表中选择

2012-01-01 00:52:02 840

转载 ARM的工作模式

为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,是针对代码密度问题而提出的,它具有16位的代码宽度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指...

2012-01-01 00:51:42 517

原创 glTexSubImage

今天把一个使用OpenGL绘图的状态机搞定了。主要就是合并相同属性的图形,减少glDrawArrays的调用次数,以达到提高运行速度的目的。调试时,注意从简单到复杂。最简单的情形即是不合并图形,与原算法一致,如果这样都不正确,就先要查这个层次的问题。逐渐增加算法的复杂度,这样可以缩小每步中解决问题的难度。使用glTexSubImage可以只更新一部分纹理数据,减少调用glTexImage2D所

2012-01-01 00:51:12 1127

原创 android - SoundPool

在android中,可以使用SoundPool来实现游戏音效。使用SoundPool的优点是异步线程,占用资源少,可以同时合成多种音效,因而比较适合于在游戏中使用,比如打斗声,效果声,按钮声等。用SoundPool载入和播放多个音效时,建议使用相同参数的声音文件(如位速,声道,采样率等),并且最好使用OGG格式,否则某些型号的手机可能会出现杂音,重复播放等问题。int streamVolu

2012-01-01 00:50:52 592

原创 android opengl es

都说android上没有一款好的游戏引擎,原因都说是硬件差异太大,编写游戏引擎时(一般用opengl es)不是所有的api都能用。这是真的吗?最近在android上使用opengl es时,确实发现兼容性要比自己想像中的差。写的程序在模拟器中运行正常,在真机中运行却有很多问题,有的时候直接死机,有的时候画出来是一片白色。例如:(1) glView.getHolder().setFor

2012-01-01 00:50:31 481

原创 android笔记2(activity与view)

1.       activity常用方法activity可以看作是一个应用程序或者任务或者进程。由于手机资源的限制,很多手机操作系统虽然支持多任务机制,但往往只支持一个任务在前台操作。即用户只能看到一个程序在前台运行,并占据了整个屏幕,如果需要切换到其它任务,需要先把当前的任务隐藏(切换到后台)。Android也是这样。1.       onCreate在该函数中可以做一些初始化或者

2012-01-01 00:50:10 371

原创 android笔记1(activity与view)

1.       activity, view概述进行android开发,只需具有java语言基础即可。入门的开发并不需要一些高深的java知识,如Swing,网络,线程,数据库等。刚开始进行android开发,会觉得android的架构设计得很好,接口简单,模块独立。特别是像我这种C++程序员来说,没有了框架自动添加的很多消息映射宏,窗口的启动,过多复杂的类等。如android应用程序的

2012-01-01 00:49:56 519

转载 OpenGL ES 关键API小结(转)

OPenGL ES常用API: glClearColor( 0.f, 0.f, 0.f, 1.f );  //  设置模式窗口的背景颜色,颜色采用的是RGBA值glViewport( 0, 0, iScreenWidth, iScreenHeight );//设置视口的大小以及位置,视口:也就是图形最终显示到屏幕的区域,前两个参数是视口的位置,后两个参数是视口的宽和长。glMa

2012-01-01 00:49:34 799

转载 (转)为什么要用补码表示

用补码的主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2(8)。 在这样的系统中减法问题也可以化成加法问题,只需把

2012-01-01 00:49:05 489

原创 MIPS指令集(共31条)

网上有一份,但有错误,自己整理了一下。

2012-01-01 00:48:45 1833 2

原创 对Map按value进行排序

Map内部是按key进行排序的,而不是value。如果希望根据value对Map里面的元素对排序,可以通过把Map里面的元素拷贝到一个list中,然后定义自己的比较函数,并对该list进行排序。(1)首先,需要定义一个结构体,以用于封装Map中的元素对(key, value)。struct strTest{    char key[32]; //key示例    unsig

2012-01-01 00:48:26 572

原创 宏定义中的连接符##和#

1. C语言宏定义中的##用来连接符号可以用##来连接宏定义中的一个或多个变量。如#define file_open(filename_tag, filename, mode)                             \    FILE *filename_tag = fopen(filename, stdio_file_open_##mode)file_o

2012-01-01 00:47:53 416

原创 silverlight没落?

技术界一个爆炸性的新闻就是微软可能改变silverlight的战略方向,而主攻html5。微软技术的战略方向不明确一直为外界所诟病,也许只有桌面windows和office延续得比较好。开发语言方面曾经有的和现在继续有的包括VB,VB.NET,VBScript,foxpro,VC,C#,J#;数据库技术方面有ODBC,DAO,ADO,OLEDB,ADO.NET;用户界面技术方面有win32,MFC

2012-01-01 00:47:28 684

原创 how to build Mesa

(1)    资源准备:下载MesaDemos-7.8.2.tar.bz2,MesaGLUT-7.8.2.tar.bz2,MesaLib-7.8.2.tar.bz2,并解压在同一目录;(2)    编译mesa及OpenGL基本库:在Mesa-7.8.2\windows\VC8\mesa下,打开mesa.sln解决方案,直接build就可以了;在Mesa-7.8.2\windows\VC8\m

2012-01-01 00:47:10 734

原创 用mesa模拟OpenGL 2.0

mesa是一个用软件实现OpenGL接口的开源图形库。即使你的显卡不支持OpenGL 2.0,也可以在它的帮助下,调试和运行需要OGL 2.0支持的程序。详细介绍和最新下载:http://www.mesa3d.org/由于需要调试使用了OpenGL ES2.0接口的程序,但自己的电脑显卡却是很旧的集显,不支持OpenGL 2.0,因此程序运行不起来。无奈之下只好想找一个可以软件模拟OpenGL

2012-01-01 00:45:27 1155

原创 使用vs2005 express

就只是在windows平台上,也可能存在多个版本的项目,如vc6.0的,vs2005的,vs2008的。由于各种各样的原因,这些项目不能统一成一个版本的,这样麻烦的事情就多了。比如说某个项目用的是vc8的静态库,你就必须用vc8来继续开发了,用vc9虽然可以编译通过,但可能运行不起来,可能提示“由于应用程序配置不正确,未能启动该应用程序”。装了vs2008以后,不想再装一个vs2005。于是想装一

2012-01-01 00:45:04 694

原创 图像缩小算法

图像缩放的算法倒是挺多的,常见的有最近邻插值法、双线性插值法、三次卷积法等。其中双线性插值算法应该是应用比较广泛的一种方法,在缩放质量和速度上都比较折衷。在xnview里面选择双线性方法对一幅图像进行0.5倍的缩小,发现效果还可以。看了一下算法原理,实现起来也不算困难。可是用自己实现的方法对图像进行0.5倍的缩小时,却发现效果远没有xnview的效果好。商业软件就是做得好啊,难到它所用的双线性方法

2012-01-01 00:44:46 5012 2

原创 ppm图像格式

ppm是一种简单的图像格式,仅包含格式、图像宽高、bit数等信息和图像数据。 图像数据的保存格式可以用ASCII码,也可用二进制,下面只说说一种ppm格式中比较简单的一种:24位彩色、二进制保存的图像。文件头+rgb数据:P6\nwidth height\n255\nrgbrgb...其中P6表示ppm的这种格式;\n表示换行符;width和height表示图像的宽高,

2012-01-01 00:44:28 1521

原创 用windows api写对话框

1. 通用对话框(打开文件)int OpenFileDlg(char* szFile , HWND hwnd){OPENFILENAME   ofn;               //   通用对话框结构//   初始化结构体 ZeroMemory(&ofn,   sizeof(ofn)); ofn.lStructSize   =   sizeof(ofn); ofn.

2012-01-01 00:44:01 1394

原创 C#顺序读取文件流

有时需要在一个文件流中顺序的读取一段一段的数据,例如一帧一帧地读取图像,是非常有用的。打开文件:fStream = new System.IO.FileStream(fileName, FileMode.Open);fileLen = fStream.Length;//文件的长度curPos = 0;//记录文件指针当前的位置frameSize = imWidth*imHeig

2012-01-01 00:43:10 1080

转载 write back和write through

为了保证cache和memory的数据一致性,通常有三种方法:1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新。这样可以

2012-01-01 00:42:51 1662

原创 使用文件映射实现进程通信

使用文件映射实现进程通信是通过让两个或更多的进程映射同一文件映射对象的视图来实现的,也就是说它们共享着相同的物理存储页面。结果,当一个进程对在一个共享文件映射对象的视图中的数据进行写操作时,其它进程立刻在它们的视图中看到了改动。注意,对于多个进程共享一个文件映射对象,所有进程必须对该文件映射对象使用完全相同的名字。使用内存映射文件时,调用CreateFileMapping()创建文件。一旦已创

2012-01-01 00:42:20 807

原创 char*、WCHAR*、vc8中的CString

在vc6中喜欢用CString,因为它用起来方便,可以容易地进行字符串赋值,复制,格式化,甚至相加,然而到了vc8中,这些操作似乎都不能用了。连CString str = "Hello World!";都会报错。网上找了一下,原来是vc8下的应用程序默认支持unicode,采用的是宽字符集,因此一般的字符串需要加一些操作才能兼容了。CString内部即是采用wchar*来表示字符串的。如果是新

2012-01-01 00:41:54 576

原创 三角形填充

给定三角形的三个顶点,填充三角形,想来想去,竟然找不到这样的软件工具。就连matlab都没有提供这样的绘图功能。我有一组三角形的顶点坐标,想判断这些三角形是否可以完全拼合在一起。如果一个一个地去检查每个三角形的顶点坐标,那真不是人干的活。求人不如求已,干脆自己写一个windows程序吧,利用gdi来填充三角形。(1)读取三角形顶点坐标三角形的顶点坐标是如此保存在一个txt文件中的:24

2012-01-01 00:41:28 2890 2

原创 函数原型的声明不可小视

在vc中,在调用一个函数之前,必须有该函数的声明(或定义),可能是包含在了头文件中,也可能是在源文件中进行了显式的声明。但在嵌入式编程中,在链接其它模块的函数时,往往不经过函数的声明,就可以调用其它模块的函数。如模块A定义了函数void moduleA_func(float x, float y),并生成了.a文件。此时,只要在makefile中指定了链接该.a文件,模块B就可以直接调用该函数而无

2012-01-01 00:40:56 441

原创 定点数转换

对浮点与定点的转换并不熟悉,只是用到一点点而已。1.浮点数转定点数在嵌入式程序中,浮点计算会占据大量的处理器资源,在满足一定的精度又不溢出的情况下,转换成定点数进行计算,将具有较大的性能提升。不管浮点数在机器内是如何表示的,基本上可以看成是由整数部分加小数部分组成的。假设需要b位的小数精度,转成定点数时乘以2^b即可,也即左移b位。示例:float x,y,z;x=12.5

2012-01-01 00:35:23 1466 1

原创 SDL编程四(事件)

SDL中常用的事件类型为键盘和鼠标。SDL中描述事件的数据结构为SDL_Event,是一个union类型(SDL_events.h/SDL_Event),包含了keyboard,motion(mouse),resize等事件的定义。typedef union{Uint8 type;//SDL_EventTypeSDL_ActiveEvent active;SDL_Keyboar

2012-01-01 00:35:02 879

原创 SDL编程三(音频)

SDL播放声音的基本流程如下:(1)创建一个回调函数用于混合音频数据,并放入音频流;(2)设置音频参数,调用SDL_OpenAudio,打开音频设备;(3)调用SDL_PauseAudio(0),进行音频回放;(4)回放结束后,调用SDL_CloseAudio() 关闭音频设备。下面是用SDL播放PCM音频数据的代码。全局数据:SDL_AudioSpec wanted;

2012-01-01 00:33:22 625

原创 SDL编程二(视频)

1.初始SDL视频库if (SDL_Init(SDL_INIT_VIDEO){   printf("can not init SDL.\n");   exit(1);}2.屏幕像素的操作下面的函数是在屏幕的(x,y)坐标位置,绘制一个颜色为R,G,B的像素点。void DrawPixel(SDL_Surface *screen, int x, int y, Uint

2012-01-01 00:32:58 420

原创 SDL编程一(环境配置)

SDL是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。可以去http://www.libsdl.org/下载最新的开发库,我用的是SDL-devel-1.2.14-VC6.zip,即VC++6.0版。1.先在vc中配置SDL头文件和链接库的路径。即在菜单Tools/Options/Directores中分别设置include f

2012-01-01 00:32:17 443

原创 cygwin编译mplayer

很喜欢mplayer这个视频播放器,据说它来源于linux平台,在windows上也有相应版本。用起来资源占用少、支持格式多。而且它的源代码是公开的,自己来编译一个播放器,是不是很有趣呢?首先准备好cygwin环境,这我就不说了。1.下载mplayer源码我用的是http://sourceforge.net/project/showfiles.php?group_id=205275&p

2012-01-01 00:32:00 925

原创 OpenVG学习

初次接触这个东西,理解肤浅,还请海涵。OpenVG是用于嵌入式设备上的矢量图形开发接口,并且希望利用硬件加速技术来提高性能。国外有商业化的OpenVG软硬件实现,国内也有牛人作了OpenVG的软件实现,效率比官方实现高很多。而且提供了一些文档及例程方便OpenVG的学习,下面的学习即取材于此。可以在这里下载http://www.hygraphics.com/download/gingkoVG/

2012-01-01 00:30:39 3323

原创 OpenVG是什么?

OpenVG是一种为Flash、SVG等矢量图形库提供硬件加速接口、免授权费和跨平台的API。其主要目标是面向需要高质量矢量图形算法加速技术的便携手持设备,用以在小屏幕设备上实现动人心弦的用户界面和文本显示效果,并支持硬件加速以在极低的处理器功率级别下实现流畅的交互性能。OpenVG 1.0是针对采用了硬件加速技术的二维夭量及光栅图形的应用编程接口(API)。它为复杂的2D图形应用提供了一种设备无

2012-01-01 00:30:02 945

转载 深度介绍Linux内核是如何工作的

广义地来说kernel就是一个软件,它在硬件和运行在计算机上的应用程序之间提供了一个层。严格点从计算机科学的角度来说,Linux中的Kernel指的是Linus Torvalds在90年代初期写的那点代码。    所有的你在Linux各版本中看到的其他东西--Bash shell、KDE窗口管理器、web浏览器、X服务器、Tux Racer以及所有的其他,都不过是运行在Linux上的应用而

2012-01-01 00:29:36 860

原创 C/C++代码批量格式化

使用eclipse可以对C/C++代码进行格式化,按ctrl+shift+F即可,但是只能打开一个一个的文件然后采用这种方法。使用astyle可以对批量地对C/C++代码进行格式化,并且可以选择某种风格,免除了种种配置的烦恼。比如我喜欢使用bsd/allman风格,格式化某目录下所有的.c文件,使用如下命令即可:>astyle -R -A1 *.c-R表示递归地转换该目录下...

2012-01-01 00:29:18 1499

原创 游戏机简介

1 游戏机的分类-----------------------------------------------街机:NEOGEO MAME CPS2 CPS1 IGS家用机:PC98 FC MD N64 PCE PS SFC Atari DC SMS NGC PS2 PS3 Wii掌机:LYNX WS/WSC NGP NDS GBA GBC GB VB SGB PSP ----

2012-01-01 00:28:57 3866 2

Notepad++代码编辑工具

Notepad++代码编辑工具

2021-05-22

Urho3D游戏引擎源码(1.7.1)

Urho3D游戏引擎源码(1.7.1)

2021-05-22

usb串口驱动(支持win10)

usb串口驱动(支持win10)

2021-05-22

netron模型可视化工具(4.6.3)

Netron 是神经网络、深度学习与机器学习模型的可视化工具, 支持Caffe, tensorflow, onnx, mxnet。github上下载很慢

2020-12-03

EasyMovieTexture视频插件v3.57

unity3d上的easymovietexture,最流行的视频播放插件。

2018-01-05

grafika示例源码

来自google的示例源码,演示了android如何高效的使用opengl,视频编解码,录制,播放,camera等,具有很大的参考价值。

2018-01-05

windows进程监视器

Microsoft Process Monitor(进程监视器),进程监视器这是一个高级的Windows监视工具不但可以监视进程/线程还可以关注到文件系统注册表的变化

2013-02-24

MFC运行库(vc6.0)

vc6.0程序的运行库(mfc),有时可能需要哦,特别是win7

2012-04-03

空空如也

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

TA关注的人

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