Пример #1
0
//コンストラクタ
MapClass::MapClass(int typeMap,int* errorFlag)
: MapType(typeMap)
{
	ZeroObject( &Map );
	ZeroObject( &Wall );
	ZeroObject( &End );
	SetupSitus( &Map, kMDL_G_MAP01 );
	SetupSitus( &Wall, kMDL_W_WALL01 );
	SetupSitus( &End, kMDL_E_END);
	g_ObjModels[Map.objType] = new ModelClass(kCourseIndex[MapType][0],errorFlag);
	g_ObjModels[Wall.objType] = new ModelClass(kCourseIndex[MapType][1],errorFlag);
	g_ObjModels[End.objType] = new ModelClass(kCourseIndex[MapType][2],errorFlag);
}
Пример #2
0
void ff::ClearTempSubDirectory()
{
#if !METRO_APP
	if (GetTempSubDirectory().empty())
	{
		// don't clear the root temp path
		return;
	}
#endif

	ff::String szFilter = ff::GetTempDirectory();
	AppendPathTail(szFilter, String(L"*"));

	WIN32_FIND_DATA data;
	ZeroObject(data);

	HANDLE hFind = FindFirstFileEx(szFilter.c_str(), FindExInfoStandard, &data, FindExSearchNameMatch, nullptr, 0);

	for (BOOL bDone = FALSE; !bDone && hFind != INVALID_HANDLE_VALUE; bDone = !FindNextFile(hFind, &data))
	{
		if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
		{
			ff::String szFile = ff::GetTempDirectory();
			AppendPathTail(szFile, String(data.cFileName));

			DeleteFile(szFile);
		}
	}

	if (hFind != INVALID_HANDLE_VALUE)
	{
		FindClose(hFind);
	}
}
Пример #3
0
	D3DPointLight::~D3DPointLight()
	{
		ReleaseLightIndex( m_LightIndex );
		ZeroObject( &m_D3DLight, sizeof( m_D3DLight ) );
		m_IsActive = MapilFalse;
		m_IsUsed = MapilFalse;
		m_LightIndex = -1;
	}
Пример #4
0
	// Create.
	MapilVoid GLTexture::Create( const MapilTChar* pFileName )
	{
		MapilChar name[ 1024 ];
		ConvertToMultiByte( pFileName, -1, name, 1024 );

		// Analyze file format.
		FileFormatAnalyzer ffa;
		ffa.Open( name );
		ffa.Analyze();

		MapilInt32 channel = 3;
		if( ffa.GetFileFmt() == FILE_FORMAT_PNG ){
			PNGFile pf;
	
			pf.Open( name, FILE_OPEN_READ_MODE );
			pf.Load();
			m_TexSize.m_X = pf.GetWidth();
			m_TexSize.m_Y = pf.GetHeight();
			m_pData = new GLubyte[ pf.GetDataSize() ];
			ZeroObject( m_pData, sizeof( GLubyte ) * pf.GetDataSize() );
			pf.Copy( m_pData );
			channel = pf.GetChannel();
			pf.Close();
		}
		else if( ffa.GetFileFmt() == FILE_FORMAT_BMP ){
			BMPFile bf;
		
			bf.Open( name, FILE_OPEN_READ_MODE );
			bf.Load( name );
			m_TexSize.m_X = bf.GetWidth();
			m_TexSize.m_Y = bf.GetHeight();
			m_pData = new GLubyte[ m_TexSize.m_X * m_TexSize.m_Y * 4 ];
			for( MapilInt32 i = 0; i < m_TexSize.m_Y; i++ ){
				for( MapilInt32 j = 0; j < m_TexSize.m_X; j++ ){
					ColorRGB < MapilUChar > col = bf.GetPixelColor( j, i );
					MapilInt32 offset = i * m_TexSize.m_X;
					m_pData[ j * 4 + offset * 4 ] = col.m_R;
					m_pData[ j * 4 + offset * 4 + 1 ] = col.m_G;
					m_pData[ j * 4 + offset * 4 + 2 ] = col.m_B;
					m_pData[ j * 4 + offset * 4 + 3 ] = 255;
				}
			}
		}

		

		glGenTextures( 1, &m_TexName );
		glBindTexture( GL_TEXTURE_2D, m_TexName );
		glTexImage2D(	GL_TEXTURE_2D,
						0,
						( channel == 4 ) ? GL_RGBA :GL_RGB,
						m_TexSize.m_X,
						m_TexSize.m_Y,
						0,
						( channel == 4 ) ? GL_RGBA :GL_RGB,
						GL_UNSIGNED_BYTE,
						m_pData );
	}
Пример #5
0
void ff::BufferCache::Reset()
{
	for (size_t i = 0; i < _countof(_buffers); i++)
	{
		_buffers[i].Clear();
	}

	ZeroObject(_allocated);
}
Пример #6
0
ff::GraphState::GraphState()
	: _vertexType(ff::VERTEX_TYPE_UNKNOWN)
	, _topology(D3D_PRIMITIVE_TOPOLOGY_UNDEFINED)
	, _stride(0)
	, _stencil(0)
	, _sampleMask(0)
{
	ZeroObject(_blendFactors);
}
Пример #7
0
bool ff::BufferCache::CreateStaticBuffer(const void *pData, size_t nBytes, ID3D11Buffer **ppBuffer)
{
	assertRetVal(ppBuffer && pData && nBytes, false);

	D3D11_BUFFER_DESC desc;
	ZeroObject(desc);

	desc.ByteWidth = (UINT)nBytes;
	desc.Usage     = D3D11_USAGE_IMMUTABLE;
	desc.BindFlags = _binding;

	D3D11_SUBRESOURCE_DATA data;
	ZeroObject(data);
	data.pSysMem = pData;

	assertRetVal(SUCCEEDED(_device->GetDX()->CreateBuffer(&desc, &data, ppBuffer)), false);
	assertRetVal(*ppBuffer, false);

	return true;
}
Пример #8
0
bool ff::BufferCache::CreateBuffer(size_t nBytes, ID3D11Buffer **ppBuffer)
{
	assertRetVal(nBytes && ppBuffer && _device && _device->GetDX(), false);

	D3D11_BUFFER_DESC desc;
	ZeroObject(desc);

	desc.ByteWidth      = (UINT)nBytes;
	desc.Usage          = D3D11_USAGE_DYNAMIC;
	desc.BindFlags      = _binding;
	desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;

	assertRetVal(SUCCEEDED(_device->GetDX()->CreateBuffer(&desc, nullptr, ppBuffer)), false);
	assertRetVal(*ppBuffer, false);

	return true;
}
Пример #9
0
bool ff::CopyFile(StringRef pathFrom, StringRef pathTo, bool bAllowOverwrite)
{
	String szCheckPathFrom = CanonicalizePath(pathFrom, true);
	String szCheckPathTo   = CanonicalizePath(pathTo, true);

#if METRO_APP
	BOOL bCancel = FALSE;
	COPYFILE2_EXTENDED_PARAMETERS cp;
	ZeroObject(cp);
	cp.dwSize      = sizeof(cp);
	cp.dwCopyFlags = bAllowOverwrite ? 0 : COPY_FILE_FAIL_IF_EXISTS;
	cp.pfCancel    = &bCancel;

	return SUCCEEDED(::CopyFile2(szCheckPathFrom.c_str(), szCheckPathTo.c_str(), &cp)) ? true : false;
#else
	return ::CopyFile(szCheckPathFrom.c_str(), szCheckPathTo.c_str(), !bAllowOverwrite) ? true : false;
#endif
}
Пример #10
0
bool ff::GetDirectoryContents(StringRef path, Vector<String> &dirs, Vector<String> &files, Vector<FILETIME> *fileTimes)
{
	dirs.Clear();
	files.Clear();
	if (fileTimes)
	{
		fileTimes->Clear();
	}

	String szFilter = CanonicalizePath(path, true);
	assertRetVal(szFilter.size(), false);
	AppendPathTail(szFilter, String(L"*"));

	WIN32_FIND_DATA data;
	ZeroObject(data);

	HANDLE hFind = FindFirstFileEx(szFilter.c_str(), FindExInfoStandard, &data, FindExSearchNameMatch, nullptr, 0);

	for (BOOL bDone = FALSE; !bDone && hFind != INVALID_HANDLE_VALUE; bDone = !FindNextFile(hFind, &data))
	{
		if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
		{
			files.Push(String(data.cFileName));

			if (fileTimes)
			{
				fileTimes->Push(data.ftLastWriteTime);
			}
		}
		else if (wcscmp(data.cFileName, L".") && wcscmp(data.cFileName, L".."))
		{
			dirs.Push(String(data.cFileName));
		}
	}

	if (hFind != INVALID_HANDLE_VALUE)
	{
		FindClose(hFind);
	}

	return hFind != INVALID_HANDLE_VALUE;
}
Пример #11
0
ff::BufferCache::BufferCache(D3D11_BIND_FLAG binding)
	: _binding(binding)
	, _device(nullptr)
{
	ZeroObject(_allocated);
}
Пример #12
0
		FrameConstants()
		{
			ZeroObject(*this);
			XMStoreFloat4x4(&world, XMMatrixIdentity());
			XMStoreFloat4x4(&proj, XMMatrixIdentity());
		}
Пример #13
0
	D3DPointLight::D3DPointLight( SharedPointer < GraphicsDevice > pDev ) :	PointLight( pDev ),
																			m_IsActive( MapilFalse ),
																			m_LightIndex( -1 )
	{
		ZeroObject( &m_D3DLight, sizeof( m_D3DLight ) );
	}