FlatShader.cpp

  最近几天过得比较糟心.主要都是关于工作的事情.之前一段时间的问题是内存泄露问题,找到了解决方法之后,内存泄露没有了.后来是游戏占用内存太大问题,资源得不到释放,在引擎的性能监视器里看释放掉了的内存,发布出游戏看内存并没有及时释放,于是查了一下,是引擎自身管理内存的问题.昨天换了4.2版本的引擎,结果测试后发现内存占用大的问题,也就是内存不及时释放的问题解决掉了.同时发现新版本改了许多BUG,于是跟项目中管事的人(非程序员)说明情况,起初被否了,后来他往换引擎的方向研究了一下.很令我不爽的第一件事换引擎版本这样的事居然不是程序员定的.今天下午,管事的说另一个程序员最近在研究资源加载与卸载这块,也就是我一直弄的这块.决定三个人开个会说一下.结果,开会的时候,另一个程序员说了一大堆我早就研究过了的东西,以一片博客文章来说事,说怎么样能行,应该怎么样好.真的很让我无语,首先这个工作是我来做的,你不该插手,其次是我已经做好的东西.经过了很多实践得出的,你看了篇文章就过来跟我说这样那样的,有这么做事的么,你没活自己研究下可以,干涉我工作干什么,不是添乱么.管事的人居然不知道我之前都研究明白了什么,你是怎么管事的,管理项目对进展不了解?自己不说自己不对的地方,有你这么管事的吗?我想的都是怎么加快项目进度的事,没想过给谁时间把项目中的东西搞得多懂,有什么想知道的不明白的就问,上来就你该这样那样,是不是傻逼.管事的说项目缺少一个特别牛逼的主程,一共就俩程序员,另一个还没做过游戏,我觉得什么事该由谁来做,怎么做好还得商量着说.平时想着各种事,一天很费心,经理和管事的也没明白既然项目就这么几个人,我还比你们有经验,有事就该多听我的,如果你们能行我巴不得不操这些心.真的很让人无语.傻逼,一群傻逼.另一个家伙好几次这样了,觉得我做的这该怎么做,那该怎么做,都是在网上看到的一些文章,就跑过来跟我说,管事的也不跟那个人讲清楚,我俩平起平坐我跟他说那么多你觉得合适吗?真是气人...既然用我了,你们都不如我,就别老自以为是,我并不厉害,但确实比你们还强,更何况有些工作我已经开展很久了,就不要再跑过来跟我说该怎么做怎么做了,烦不烦?

  最近OPENGL的书仍继续看,看到什么代码就自己抄一遍.这周来的时候忘记带了无线上网终端,昨天研究了一下使用手机给笔记本上网,居然轻易成功了....吼吼...

//	FlatShader.cpp -- 2013/08/06-21:23
#include "stdafx.h"
#include <GLTools.h>	// OpenGL toolkit
#include <GLMatrixStack.h>
#include <GLFrame.h>
#include <GLFrustum.h>
#include <GLGeometryTransform.h>
#include <StopWatch.h>
#include <math.h>
#define FREEGLUT_STATIC
#include <GL\glut.h>

GLFrame viewFrame ;
GLFrustum viewFrustum ;
GLTriangleBatch torusBatch ;
GLMatrixStack modelViewMatrix ;
GLMatrixStack projectionMatrix ;
GLGeometryTransform transformPipeline ;

GLuint flatShader ;

GLint locMVP ;
GLint locColor ;

void SetupRC(void)
{
	glClearColor(0, 0, 0, 1) ;

	glEnable(GL_DEPTH_TEST) ;
	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) ;

	viewFrame.MoveForward(4.0f) ;

	gltMakeTorus(torusBatch, 0.8f, 0.25f, 52, 26) ;

	flatShader = gltLoadShaderPairWithAttributes("FlatShader.vp", "FlatShader.fp", 1, GLT_ATTRIBUTE_VERTEX, "vVertex") ;

	locMVP = glGetUniformLocation(flatShader, "mvpMatrix") ;
	locColor = glGetUniformLocation(flatShader, "vColorValue") ;
}

void ShutdownRC(void)
{
	//	do nothing
}

void RenderScene(void)
{
	static CStopWatch rotTimer ;

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) ;

	modelViewMatrix.PushMatrix(viewFrame) ;
	modelViewMatrix.Rotate(rotTimer.GetElapsedSeconds() * 10, 0, 1, 0) ;

	GLfloat vColor[] = {1.0f, 0.1f, 0.1f, 1.0f} ;

	glUseProgram(flatShader) ;
	glUniform4fv(locColor, 1, vColor) ;
	glUniformMatrix4fv(locMVP, 1, GL_FALSE, transformPipeline.GetModelViewProjectionMatrix()) ;
	torusBatch.Draw() ;

	modelViewMatrix.PopMatrix() ;

	glutSwapBuffers() ;
	glutPostRedisplay() ;
}

void ChangeSize(int w, int h)
{
	if (h == 0)
		h = 1 ;

	glViewport(0, 0, w, h) ;

	viewFrustum.SetPerspective(35.0f, float(w) / h, 1, 100.0f) ;

	projectionMatrix.LoadMatrix(viewFrustum.GetProjectionMatrix()) ;
	transformPipeline.SetMatrixStacks(modelViewMatrix, projectionMatrix) ;
}

int main (int argc, char* argv[])
{
	gltSetWorkingDirectory(argv[0]) ;

	glutInit(&argc, argv) ;
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL) ;
	glutInitWindowSize(800, 600) ;
	glutCreateWindow("Simple Transformed Geometry") ;
	glutReshapeFunc(ChangeSize) ;
	glutDisplayFunc(RenderScene) ;

	GLenum err = glewInit() ;
	if (err != GLEW_OK)
	{
		fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err)) ;
		return 1 ;
	}

	SetupRC() ;
	glutMainLoop() ;
	ShutdownRC() ;

	return 0 ;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值