07 2013 档案
摘要:显卡工作原理是什么?我们在 监视器上看到的图像是由很多个小点组成的,这些小点称为“像素”。在最常用的分辨率设置下,屏幕显示一百多万个像素,电脑必须决定如何处理每个像素,以便生成图像。为此,它需要一位“翻译”,负责从CPU获得二进制数据,然后将这些数据转换成人眼可以看到的图像。除非电脑的主板内置了图形功能,否则这一转换是在显卡上进行的。 显卡的工作非常复杂,但其原理和部件很容易理解。在本文中,我们将了解显卡的基本部件和它们的作用。此外,我们还将考察那些共同发挥作用以使显卡能够快速、高效工作的因素。 -->显卡生成一幅线框图像,然后进行填充并添加纹理和阴影。 -->显卡的基本原理 我们
阅读全文
摘要:关于渲染管线将什么呢?无非就是在OpenGL的管道当中各个部分的功能以及如何在管道当中形成了我们想要的最终的一幅图.(像素).而管线当中的操作可分为以下几个部分:阶段1. 指定几何对象.如:点线 三角形.等一些几何图元..OpenGL绘制几何图元的方法有以下三种:一次一个顶点.即使用glBegin() glVertex() glEnd() 指定几何对象. 使用顶点数组..如glDrawArrays.glDrawElements.等.一次性的绘制大量图元.上面这两种模式则是立即模式.即指定完图元之后会被立即渲染.即将所有数据发往渲染管线后立即被渲染. 显示列表模式.它存储于OpenGL服务端 (
阅读全文
摘要:记得刚毕业的时候,公司里面还有比较多的C++程序员,他们对语言的痴迷让我一度认为这才是牛人。 有一个主管叫酱油哥写个数据分析的程序,此酱油哥python很厉害,但主管希望用可以使用C++来做,毕竟数据分析对效率要求较高,尤其是公司大量的数据,光是读取就很耗时,酱油哥开始动手了,首先搞段代码去链接MySQL,然后读取数据,之后分析数据,很不幸,平时python用习惯了,再使用C++来办事,总觉得是在坑自己,后来酱油哥说可以使用python做嘛,没向主管请示的情况下,两个小时,来程序框架建好了,跑起来不错,给主管看,主管猛夸酱油哥做事迅速,后来虽知道没有使用C++来做,有没有责备什么。 但...
阅读全文
摘要:freshman@freshman:~$ gcc --help用法:gcc [选项] 文件...选项: -pass-exit-codes 在某一阶段退出时返回最高的错误码 --help 显示此帮助说明 --target-help 显示目标机器特定的命令行选项 --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...] 显示特定类型的命令行选项 ...
阅读全文
摘要:===HelloWorld===make.sh#!/bin/sh# openbsd 4.9# gcc 4.2.1# openjdk 1.7.0export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.javac HelloWorld.javajavah HelloWorldgcc -shared libHelloWorld.c -o libHelloWorld.sojava HelloWorldbuild.bat:: Microsoft Visual Studio 2012 Visual C++ compilerSET VC = "C:\Program Fil
阅读全文
摘要:/* * Brick.cpp * * Created on: 2013-7-20 * Author: freshman */#include "Brick.h"Brick::Brick() { _isTouchBegined = false;}Brick::~Brick() {}/**获取砖块所处的位置*/CCRect Brick::getRect() { CCSize size = getContentSize(); return CCRectMake( -size.width / 2, -size.height / 2, size.width, size.he...
阅读全文
摘要:#include using namespace std;#include #include int printMax(int value, ...){ va_list args; va_start(args, value); int val = value; while (val) { cout<<val<<endl; val = va_arg(args, int); } return 0;}int main(){ printMax(1, 2, 3, 0); return 0;}
阅读全文
摘要:cocos2d-x中内置了很多的容器类,每个容器类都是容纳CCObject的对象,在对象被添加到容器中时,他的引用就增加了一。下面举一个例子说明:CCArray中有addObject方法,负责把一个CCObject对象添加到这个容器中,在使用addObject添加进来的对象的引用都会加一。void CCArray::addObject(CCObject* object){ ccArrayAppendObjectWithResize(data, object);}/** Appends objects from plusArr to arr. Capacity of arr is incr...
阅读全文
摘要:在cocos2d-x中,CCNode的移动都是通过Action来执行的。下面介绍几款常见的Action,比如移动,旋转CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", TITLE_FONT_SIZE); // position the label on the center of the screen pLabel->setPosition(ccp(origin.x + visibleSize.width/2, origin.y + visib...
阅读全文
摘要:cocos2d-x默认的坐标系,如上图所示。每个CCSprite的原点都是在其本身的中心点上。
阅读全文
摘要:Flash平台从11.4版本就开始支持多线程编程,只不过这个使用起来有点坑爹。每个 worker 都是基于独立的 swf 应用程序创建的并且作为独立的 swf 应用程序执行。要创建 Worker 实例,您需要获取 SWF 文件的字节以作为 ByteArray 实例,并将该实例传递给此方法。下面就详细的介绍一下三种方式使用Flash的多线程技术。针对此目的,有三种常用方式可用来访问 swf 的字节:// Embed the SWF file [Embed(source="../swfs/BgWorker.swf", mimeType="application/oct
阅读全文
摘要:上一篇文章,说了通过Java的使用方式来使用C++,下面就分析一下如何做。Java中的对象都是被new出来的,因为Java虚拟机有自动内存回收技术,所以不需要程序员手动delete,在使用C++的时候,我们尽量通过new的方式来创造C++对象,最后通过delete来释放内存。Java中的=赋值运算符都是把对象的引用传递,而不是C++的拷贝构造函数调用。所以我们要禁止对象拷贝,把=赋值运算符禁止掉。/* * NoCopying.h * * Created on: 2013-7-7 * Author: freshman */#ifndef NOCOPYING_H_#define NOC...
阅读全文
摘要:首先说一下为什么会写下这片文章,学习过C++的同学都明白,C++编译器在背后隐藏了很多的秘密。例如:1、创建一个默认构造方法2、创建一个默认析构方法3、创建一个默认拷贝构造方法4、创建一个默认=运算符正是因为创建了这几个方法,导致C++对象的生命周期不可预测。对象在传递的过程中就发生了对象拷贝,在作用域结束的时候,(对象副本)不可避免的被释放了。从而可能导致(对象原本)受到无辜的牵连。其实这些还是可以预测的,比如,C++自动析构的对象都是处在栈上面的对象,而分配到堆上面的对象,C++是无能为力的,它没有能力主动终结堆上的对象。因为这些对象必须是程序员主动delete。说到这里就清楚了,尽量把对
阅读全文
摘要:不多说,上源码,setFrameSize这个函数大家都比较熟悉吧,没错,main函数中的关键函数,定义了游戏窗口的大小,但是它可不只是定义窗口大小的。void CCEGLView::setFrameSize(float width, float height){ bool eResult = false; int u32GLFWFlags = GLFW_WINDOW; //create the window by glfw. //check CCAssert(width!=0&&height!=0, "invalid window's size equal 0
阅读全文
摘要:太晚了,先放上源码再说。 #include "Paddle.h"Paddle::Paddle(void){}Paddle::~Paddle(void){}CCRect Paddle::rect(){ CCSize s = getTexture()->getContentSize(); return CCRectMake(-s.width / 2, -s.height / 2, s.width, s.height);}Paddle* Paddle::paddleWithTexture(CCTexture2D* aTexture){ Paddle* pPaddle = n
阅读全文

浙公网安备 33010602011771号