自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 一日一点RakNet(1)--RakNet

首先,将参考手册的首页翻译一下,作为学习大纲,放到此处! 一日一点RakNet(1)--RakNet介绍参考手册更新于2011/7/7。当前版本信息见readme.txtRakNet 一款免费的低代价的C++和C#游戏引擎库,允许程序员在程序中加入响应时间严格的网络应用。它大多用于游戏,但是独立于游戏应用程序,也即它并不与某一个游戏相关联,完全可以独立应用于

2016-08-29 15:49:21 850

转载 socket、tcp、udp、http 的认识及区别

网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。IP 协议对应于网络层,TCP协议对应于传输层,HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用。可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据socket是对TCP/IP协

2016-09-01 16:01:18 363

转载 OpenGL状态机/变换堆栈/基本类型和函数

一、状态机理解Opengl是一个状态机,当你设置一个命令状态进去了以后会一直是这个状态,直到改变这个状态为止,实际中需要检查下当前状态再设置进去效率会高些,避免产生很多的OGL comand,这点和D3D一样。二、变换堆栈理解    Opengl矩阵堆栈变换类型分为模型视图变换GL_MODELVIEW堆栈和投影变换GL_PROJECTION堆栈等,在指定的变换堆栈中,当前的变换

2016-08-25 21:55:05 1049

转载 OpenGL环境搭建(Windows下VS2010)

环境搭建需要注意的:1.要自己去下载 glut3.7包(SDK非源码),解压,然后把glut32.dll的文件都放到windows/system32文件夹里面去;把glut32.lib放到VC的C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib文件夹里面;把glut.h头文件放到C:\Program Files\Micro

2016-08-25 21:36:06 385

转载 OGRE渲染过程

参考文章:http://www.cnblogs.com/liangliangh/p/3577239.htmlOGRE渲染过程:   1) Create the Root object.   2) Define the resources that Ogre will use.   3) Choose and set up the RenderSystem (that is,

2016-08-25 20:55:05 357

原创 Apache打开GZip

打开D:\phpStudy\Apache\conf\httpd.conf  LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 去掉前面#,打开这两个配置在最后添加一下内容    #必须的,就像一个开关一样,告诉apache

2016-07-26 16:08:25 323

原创 Window下Apache 源代码编译

1、下载Apache和Deps,http://www.apache.org/dist/httpd/,以2.4.23为例;2、用Cmake构建APR的VS代码,具体设置如下,编译安装;3、用Cmake构建APR-util的VS代码,具体设置如下,编译安装;4、用Cmake构建PCRE的VS代码,具体设置如下,编译安装;5、用Cmake构建Apache的VS代码

2016-07-26 13:22:59 1366

原创 SQLite对字符串字段建立索引后查询速度无优化的问题

CREATE TABLE  if not exists  [CacheIndex] ([Name] VARCHAR(40, 40) NOT NULL ON CONFLICT IGNORECOLLATE NOCASE,   [Pos] INT64, [Size] integer);CREATE INDEX  if not exists  [NameIndex] ON [CacheInde

2016-06-20 15:57:17 1074

转载 Sqlite 导出表结构和数据

参考文章http://www.cnblogs.com/gzggyy/archive/2012/05/16/2503552.htmlSqlite官方下载工具https://www.sqlite.org/2016/sqlite-tools-win32-x86-3130000.zip解压命令行进入 导出sqlite3 VarChar32.db>.output Out.sql 

2016-06-20 15:47:28 6233

原创 ASCII Unicode UTF-8互转

#include "stdafx.h"#include #include #include  //Unicode  ANSCIIstd::string Unicode2Ascii(const std::wstring& mStrIn){    int mAsciiSize = ::WideCharToMultiByte(CP_ACP, 0, mStrIn.c_st

2016-06-20 15:42:57 508

转载 ANSI, UNICODE,UTF8编码的区别

本地化过程中涉及到源文件和目标文件的传输问题,这时候编码就显得很重要。中文的网页和操作系统中通常采用ANSI编码,这也是微软OS的一个字符标准。对于ANSI,不同的国家和地区制定了不同的标准,由此产生了GB2312(简体中文),BIG5(繁体中文),JIS(日文)等各自的编码标准。但不同的ANSI编码在不同语言之间是不兼容的,所以对于不同的操作系统之间文件的传输,或者在同样的操作系统下,源文件语言

2016-05-05 17:19:57 402

转载 Activex感知网页关闭事件

概述IE直到控件第一次可见的时候才创建ActiveX控件,调用WM_CREATE的处理代码。在离开或者关闭页面的时候也没有调用WM_DESTORY的处理代码。在控件大小是0*0的时候也有同样的问题。如果你在这之前(例如window.onload事件的处理代码中)访问控件的窗口或者子窗口,那么不会成功。原因大多数ActiveX控件框架,例如MFC和ATL,在本地激活ActiveX

2016-04-01 13:21:41 841

转载 COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)

源代码下载:MyActiveX20081229.rar声明:本文代码基于CodeProject的文章《A Complete ActiveX Web Control Tutorial》修改而来,因此同样遵循Code Project Open License (CPOL)。      在上一篇文章《COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控

2016-04-01 11:17:43 449

转载 COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)

声明:本文代码基于CodeProject的文章《A Complete ActiveX Web Control Tutorial》修改而来,因此同样遵循Code Project Open License (CPOL)。       最近遇到两个需求:1)在ActiveX控件中使用工作线程来完成底层的硬件设备扫描任务,并在工作线程中根据操作结果回调外部web页面的JavaScrip

2016-04-01 11:16:12 363

转载 浏览器插件之ActiveX开发(五)

前面四篇文章都是在描述如何用C++开发基于MFC的ActiveX插件以及如果对插件进行打包和在Web页面中调用,但确忽略了一个非常重要的问题:代码签名。《浏览器插件之ActiveX开发(三)》提及了两种注册插件的方法,其中IE自动下载并注册插件的方法就涉及到签名问题,如果cab包是未签名的或签名不被信任的,IE就拒绝注册该插件。     一、数字签名简述     现在的各种软件星罗

2016-04-01 10:40:03 317

转载 浏览器插件之ActiveX开发(四)

简单总结一下前几篇文章的内容,《浏览器插件之ActiveX开发(一)》简单介绍了一下如何在Vs.net 2008下用C++开发基于MFC的ActiveX插件,《浏览器插件之ActiveX开发(二)》介绍了开发插件时可能遇到的问题,《浏览器插件之ActiveX开发(三)》介绍了如何注册插件以及如何打包成cab文件。但是,到目前为止还没有专门提及如何在Web页面中调用插件,本文主要针对这个问题

2016-04-01 10:36:33 378

转载 浏览器插件之ActiveX开发(二)

按照上文《浏览器插件之ActiveX开发(一)》的步骤,能开发一个基于MFC的简单的ActiveX控件。不过在实际操作中还是会遇到一些问题。由于对COM编程了解得很少很少,有些问题我也没有找到很好的解决方法。      一、ActiveX需要引用其他dll的问题      我们的ActiveX需要对IC卡设备进行读写,所以需要调用设备自带的接口。设备厂商提供了“mwhrf_bj

2016-04-01 10:33:54 369

转载 浏览器插件之ActiveX开发(三)

ActiveX插件如果想在Html中进行引用,必须先对插件ocx文件进行注册,即通过regsvr32将该控件注册到用户的操作系统里。在实际应用中,一般有两种方式来达到这个目的:      一、通过安装程序注册ActiveX      这种方式非常直观,就是制作一个简单的安装程序,该安装程序的任务就是将打包的ocx文件及其依赖文件解压复制到系统目标位置,然后再通过执行regsvr32

2016-04-01 10:31:37 361

转载 浏览器插件之ActiveX开发(一)

一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。     浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一

2016-04-01 10:30:00 546

转载 十大OpenGL教程

1.http://nehe.gamedev.net/这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48个教程翻译成了中文http://www.owlei.com/DancingWind/。Nehe教程最大的特点是提供了针对不同平台、不同编译器、不同语言的各种版本。你不用考虑自己用的是Linux/Windows、VC/BC、C++/Java/C#/VB,甚至D语言,你都能找到对应的

2016-03-06 19:52:50 358

转载 OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)

glReadPixels,glDrawPixels和glCopyPixels

2016-03-06 15:31:25 606

转载 boost 编译及使用

boost的编译和使用,经过搜集资料和总结,记录成文。感谢文后所列参考资料的作者。1 介绍Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技

2016-02-03 14:19:37 1249

原创 OpenGL超级宝典开发环境配置(VS2010)

《OpenGL超级宝典》第五版中的例子使用了GLEW、freeglut和GLTools三个库。1、GLEWThe OpenGL Extension Wrangler Library is a simple tool that helps C/C++ developers initialize extensions and write portable applications. GLEW

2016-02-03 10:54:56 1354

原创 ALL_BUILD、ZERO_CHECK等详解

一般由CMAKE构建的解决方案(Solution)中包含三工程(Project),分别是ALL_BUILD、ZERO_CHECK、INSTALLALL_BUILD只要编译这个工程,所有的工程均会编译;ZERO_CHECK监视CMakeLists.txt文件的变化,一旦发生变化,它会告诉编译器重新构建整个工程环境。INSTALL:将工程编译后生成的dll和exe等安装到指定目录中,具体安

2016-02-03 09:37:28 5945

转载 [Raytracing]光线追踪算法

转自:http://www.cnblogs.com/daniagger/archive/2012/05/27/2520254.html实际上叫反向光线追踪(backward raytracing),因为计算是从camera开始发射光线,而不是从光源发射光线。反向光线追踪步骤:1、camera的胶片被分成离散的网格(即像素点),我们的目标是确定每一个像素点的颜色值。2、对于每一个

2015-12-28 23:41:09 3126 1

转载 解读Unity中的CG编写Shader系列1——初识CG

CG=C for Graphics  用于计算机图形编程的C语言超集前提知识点:1.CG代码必须用CGPROGRAM。。。ENDCG括起来2.顶点着色器与片段着色器的主函数名称可随意,但需要再#pragma vert 与#pragma fragment中声明并且与主函数名完全匹配,shader才会找到入口3.float4是一种压缩数组,float4 vert与float

2015-12-27 15:31:37 319

转载 OpenGL渲染流程

一.什么是openGLOpenGL被定义为“图形硬件的一种软件接口”。从本质上说,它是一个3D图形和模型库,具有高度的可移植性,具有非常快的速度。二.管线管线这个术语描述了opengl渲染的整个过程。openGL采用cs模型:c是cpu,s是GPU,c给s的输入是vertex信息和Texture信息,s的输出是显示器上显示的图像。下面这2个图比较清楚的讲解了opengl的渲染管线。

2015-12-27 15:10:35 2533

转载 【GLSL教程】(九)其他说明

法线矩阵在很多顶点shader中都用到了gl_NormalMatrix。这里将介绍这个矩阵是什么,以及它的作用。大部分计算是在视图空间内完成的,主要原因是光照的运算要放在这个空间内,否则一些依赖观察点坐标的效果,比如镜面反射光就很难实现。所以我们需要将法线变换到视图空间。变换一个顶点到视图空间的方法如下:[cpp] view plaincopyprint?

2015-12-27 11:56:22 332

转载 【GLSL教程】(八)纹理贴图

简单的纹理贴图(Simple Texture)为了在GLSL中应用纹理,我们需要访问每个顶点的纹理坐标。GLSL中提供了一些属性变量,每个纹理单元一个:[cpp] view plaincopyprint?attribute vec4 gl_MultiTexCoord0;  attribute vec4 gl_MultiTexCoord1;  attribute

2015-12-27 11:55:34 448

转载 【GLSL教程】(七)逐像素的光照

逐像素的方向光(Directional Light per Pixel)这一节将把前面的shader代码改为逐像素计算的方向光。我们需要将工作按照两个shader拆分,以确定哪些是需要逐像素操作的。首先看看每个顶点接收到的信息:•法线•半向量•光源方向我们需要将法线变换到视点空间然后归一化。我们还需要将半向量和光源方向也归一化,不过它们已经位于视点空间中了。这些归一化之后的

2015-12-27 11:36:05 475

转载 【GLSL教程】(六)逐顶点的光照

引言在OpenGL中有三种类型的光:方向光(directional)、点光(point)、聚光(spotlight)。本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光。我们将向shader中逐渐添加环境光、散射光和高光效果。后面的教程中我们将使用逐像素光照以获得更好的效果。接下来我们将实现逐像素的点光和聚光。这些内容与方向光很相近,大部分

2015-12-27 11:26:22 544

转载 【GLSL教程】(五)卡通着色

引言卡通着色可能是最简单的非真实模式shader。它使用很少的颜色,通常是几种色调(tone),因此不同色调之间是突变的效果。下图显示的就是我们试图达到的效果:茶壶上的色调是通过角度的余弦值选择的,这个角度是指光线和面的法线之间的夹角角度。如果法线和光的夹角比较小,我们使用较亮的色调,随着夹角变大,逐步使用更暗的色调。换句话说,角度余弦值将决定色调的强度。在本教程中,我们先介绍逐顶

2015-12-27 10:29:09 351

转载 【GLSL教程】(四)shder的简单示例

GLSL的Hello World这一节中包含一个最基本的shader,它提供如下功能:顶点变换然后使用单一的颜色渲染图元。顶点shader前面已经说过,顶点shader负责完成顶点变换。这里将按照固定功能的方程完成顶点变换。固定功能流水线中一个顶点通过模型视图矩阵以及投影矩阵进行变换,使用如下公式:[cpp] view plaincopyprint?

2015-12-27 10:24:01 357

转载 【GLSL教程】(三)在OpenGL中向shader传递信息

引言一个OpenGL程序可以用多种方式和shader通信。注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存。OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了。例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样。不过,使用OpenGL状态并

2015-12-27 10:11:23 465

转载 【GLSL教程】(二)在OpenGL中使用GLSL

设置GLSL这一节讲述在OpenGL中配置GLSL,假设你已经写好了顶点shader和像素shader。如果你还没有准备好,可以从如下网址获得相关内容:http://www.3dshaders.com/home/http://www.opengl.org/sdk/tools/ShaderDesigner/http://developer.amd.com/archive/gpu/re

2015-12-27 09:45:34 353

转载 【GLSL教程】(一)图形流水线

这是一些列来自lighthouse3d的GLSL教程,非常适合入门。我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询。流水线概述下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念。一个固定流水线包括如下功能:顶点变换(Vertex Transformation)这里一个顶点是一个信

2015-12-27 09:44:11 333

原创 MyGUI中的内存泄漏

1、sigslot.h中void slot_disconnect(has_slots* pslot){    lock_block lockblock(this);    typename connections_list::iterator it = m_connected_slots.begin();    typename connections_list::iterat

2015-09-18 14:37:27 381

转载 std::map用法

目录(?)[-]1map介绍11 map的构造12 map定义2map的方法21 在map中插入元素22 查找并获取map中元素23 从map中删除元素24 map中swap的用法25 map的sort问题26 map的基本操作函数3例子映射和多重映射基于某一类型Key的键集的存在,提供对T类型的数据进行快速和高效的检索。对map而言,键只是指存储在容器中的

2015-09-18 09:56:49 356

原创 各种各样_cast

C和C++中提供了四个_cast,分别是const_cast、dynamic_cast、reinterpret_cast、static_cast,下面将他们一一举例说明如何使用。const_cast (pObj)  用于从一个类中去除const、volatile和_unalignedClass A const A * pA = new A();A* pTemp = pA; //

2015-08-25 12:00:12 304

原创 ActiveX中无标题CDHtmlDialog客户区的拖动实现

ActiveX中各类窗体中均无法响应PreTranslateMessage函数,故桌面版程序实现的方式在这里不能工作。同时CDHtmlDialog集成类中无法相应鼠标按下、移动等消息,故选择在OnMouseActive中发送HTCAPTION消息即PostMessage(WM_NCLBUTTONDOWN, HTCAPTION);即可实现鼠标移动窗体。

2015-08-14 16:46:21 361

空空如也

空空如也

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

TA关注的人

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