当前位置: 首页>>代码示例>>C++>>正文


C++ Composition::setName方法代码示例

本文整理汇总了C++中Composition::setName方法的典型用法代码示例。如果您正苦于以下问题:C++ Composition::setName方法的具体用法?C++ Composition::setName怎么用?C++ Composition::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Composition的用法示例。


在下文中一共展示了Composition::setName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init


//.........这里部分代码省略.........
	m_pWorkingDirectory	= _workingDirectory;
	m_renderer			= _renderer;

	/*	--- Overview of how the data linking and abstraction works --- 

		Property { struct<T>[] }				--- Refs by Id (explicit) --->				Resources<T>[Id]
		Composition { Interface<Property>[] }	--- Refs by Datatype (Id is implicit) --->	Property<T>[Id]

		LLC: Create raw data
		MLL: Create 'property struct', link to desired raw data
		HLC: Create 'composition struct', link to all desired properties		(note: as of now only one property per type is allowed)
	*/

	/************************
		LOW LEVEL CREATION 
	*************************/

	/* init default render resources  */
	
	// blendstates
	unsigned int ref;
	hr = createBlendState(ref, D3D11_BLEND_ONE, D3D11_BLEND_ONE, D3D11_BLEND_ONE, TRUE);
	hr = createBlendState(ref, D3D11_BLEND_ONE, D3D11_BLEND_ONE, D3D11_BLEND_ONE, FALSE);
	hr = createBlendState(ref, D3D11_BLEND_SRC_ALPHA, D3D11_BLEND_INV_SRC_ALPHA, D3D11_BLEND_SRC_ALPHA, TRUE);

	D3D11_SAMPLER_DESC sampDesc;
	ZeroMemory( &sampDesc, sizeof(sampDesc));
	sampDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
	sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
	sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
	sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
	sampDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
	sampDesc.MinLOD = 0;
	sampDesc.MaxLOD = D3D11_FLOAT32_MAX;

	hr = createSamplerState(ref, sampDesc);

	sampDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
	sampDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
	sampDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;

	hr = createSamplerState(ref, sampDesc);

	// cbuffers
	unsigned onceRef, changeRef;
	hr = createCBuffer(onceRef, sizeof(CBOnce));
	hr = createCBuffer(changeRef, sizeof(CBOnChange));

	m_renderer->cbOnceID		= onceRef;
	m_renderer->cbOnChangeID	= changeRef;

	// shaders
	unsigned int vRef, pRef;
	hr = createShader<ID3D11VertexShader>(vRef, standardLayout, "defaultVS", "vs_4_0");
	hr = createShader<ID3D11PixelShader>(pRef, standardLayout, "defaultPS", "ps_4_0");

	// SRV's
	hr = createSRV(ref, "grass.png");
	hr = createSRV(ref, "bozo.jpg");

	/***************************
		MEDIUM LEVEL LINKING
	****************************/

	/* Init default properties */
	unsigned int sRef, mRef, tRef;
	// Shader
	Shader*			s	= new Shader(vRef, pRef);
	CModel<Shader>* cs	= new CModel<Shader>("default_shader", s);
	
	// Mesh
	createCube(vRef, pRef);	// notice reuse of paramaters
	Mesh*			m	= new Mesh(vRef, pRef, 36, ref);
	CModel<Mesh>*	cm	= new CModel<Mesh>("default_mesh", m);

	// Transform
	Transform*			t	= new Transform(elm::vec3(100,100,100), elm::vec3(0), elm::vec3(10));
	CModel<Transform>*	ct	= new CModel<Transform>("default_transform", t);

	/* register properties */
	addProperty(cs);
	addProperty(cm);
	addProperty(ct);

	/*****************************
		HIGH LEVEL COMPOSITION
	******************************/

	// Composition
	Composition* c = new Composition();
	c->setName("default_object");

	c->setProperty<Shader>(cs);
	c->setProperty<Mesh>(cm);
	c->setProperty<Transform>(ct);

	addComposition(c);

	return true;
}
开发者ID:Shada,项目名称:edit87,代码行数:101,代码来源:Controller.cpp

示例2: createTerrain

bool Controller::createTerrain(int width, int height, float pointStep, bool fromPerlinMap)
{
	HRESULT hr;
	unsigned int vRef, iRef;
	vector<unsigned int> indexBuffer;
	vector<Vertex> vertexBuffer;

	m_terrain->createTerrain(width, height, pointStep, fromPerlinMap, vertexBuffer, indexBuffer);

	int w = abs(m_renderer->r.right - m_renderer->r.left);
	int h = abs(m_renderer->r.bottom - m_renderer->r.top);
	if(!m_renderer->camera)
		m_renderer->camera = new Camera(w, h, m_terrain);
	else
		m_renderer->camera->resizeWindow(w, h);

	hr = createBuffer<Vertex>(vRef, vertexBuffer, D3D11_BIND_VERTEX_BUFFER, D3D11_USAGE_DYNAMIC, D3D11_CPU_ACCESS_WRITE);
	if( FAILED(hr) )
		return false;

	hr = createBuffer<unsigned int>(iRef, indexBuffer, D3D11_BIND_INDEX_BUFFER, D3D11_USAGE_IMMUTABLE);
	if( FAILED(hr) )
		return false;

	/* construct mesh */
	Mesh*			m	= new Mesh(vRef, iRef, indexBuffer.size(), 0);
	CModel<Mesh>*	im	= new CModel<Mesh>("terrain_mesh", m);
	addProperty(im);

	/* construct shader */
	Shader*			s	= new Shader();
	CModel<Shader>* sm	= new CModel<Shader>("terrain_shader", s);
	addProperty(sm);

	/* construct transformation */
	Transform*			t	= new Transform();
	CModel<Transform>*	tm	= new CModel<Transform>("terrain_transform", t);
	addProperty(tm);

	/* construct composition */
	Composition* c = new Composition();
	
	c->setProperty<Mesh>(im);
	c->setProperty<Shader>(sm);
	c->setProperty<Transform>(tm);

	c->setName("terrain_object");
	addComposition(c);

	/* for fun create a mini duplicate */
	//t = new Transform(elm::vec3(200,500,200), elm::vec3(0), elm::vec3(0.25));
	t = new Transform(elm::vec3(50,100,100), elm::vec3(0), elm::vec3(0.25));
	tm	= new CModel<Transform>("terrain_transform", t);

	m	= new Mesh(vRef, iRef, indexBuffer.size(), 1);
	im	= new CModel<Mesh>("terrain_mesh", m);
	addProperty(im);

	c = new Composition();
	c->setProperty<Mesh>(im);
	c->setProperty<Shader>(sm);
	c->setProperty<Transform>(tm);
	addComposition(c);

	return true;
}
开发者ID:Shada,项目名称:edit87,代码行数:66,代码来源:Controller.cpp


注:本文中的Composition::setName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。