void AnimationStateMachine::update( IZ_FLOAT delta, izanagi::CSkeletonInstance* skl) { SAFE_REPLACE(m_skl, skl); update(delta); }
// ユーザー定義のシェーダをセット void C2DShader::SetUserDefsShader( CVertexShader* vs, CPixelShader* ps) { SAFE_REPLACE(m_UserDefsVS, vs); SAFE_REPLACE(m_pPS[E_GRAPH_2D_RENDER_OP_USER_DEFS], ps); if (m_UserDefsVS != IZ_NULL) { m_ShaderProgram[E_GRAPH_2D_RENDER_OP_USER_DEFS]->AttachVertexShader(m_UserDefsVS); } else { m_ShaderProgram[E_GRAPH_2D_RENDER_OP_USER_DEFS]->AttachVertexShader(m_pVS); } m_ShaderProgram[E_GRAPH_2D_RENDER_OP_USER_DEFS]->AttachPixelShader(m_pPS[E_GRAPH_2D_RENDER_OP_USER_DEFS]); }
IZ_BOOL CShaderProgramDX9::AttachPixelShader(CPixelShader* ps) { IZ_ASSERT(ps != IZ_NULL); if (m_PS == IZ_NULL) { SAFE_REPLACE(m_PS, ps); } return IZ_TRUE; }
IZ_BOOL CShaderProgramDX9::AttachVertexShader(CVertexShader* vs) { IZ_ASSERT(vs != IZ_NULL); if (m_VS == IZ_NULL) { SAFE_REPLACE(m_VS, vs); } return IZ_TRUE; }
IZ_BOOL LoadTextureJob::Init( izanagi::IMemoryAllocator* allocator, izanagi::graph::CGraphicsDevice* device, const char* path, Item* target) { m_InternalAllocator = allocator; SAFE_REPLACE(m_Device, device); m_Path = path; m_TargetItem = target; return IZ_TRUE; }
// インスタンス作成 CVertexBufferGLES2* CVertexBufferGLES2::CreateVertexBuffer( CGraphicsDeviceGLES2* device, IMemoryAllocator* allocator, IZ_UINT stride, IZ_UINT vtxNum, E_GRAPH_RSC_USAGE usage) { IZ_BOOL result = IZ_TRUE; IZ_UINT8* buf = IZ_NULL; CVertexBufferGLES2* instance = IZ_NULL; // メモリ確保 buf = (IZ_UINT8*)ALLOC_ZERO(allocator, sizeof(CVertexBufferGLES2)); if (!(result = (buf != IZ_NULL))) { IZ_ASSERT(IZ_FALSE); goto __EXIT__; } // インスタンス作成 instance = new (buf)CVertexBufferGLES2; { instance->AddRef(); instance->m_Allocator = allocator; SAFE_REPLACE(instance->m_Device, device); } // 本体作成 result = instance->CreateBody( device, stride, vtxNum, usage); if (!result) { goto __EXIT__; } __EXIT__: if (!result) { if (instance != IZ_NULL) { SAFE_RELEASE(instance); } else if (buf != IZ_NULL) { allocator->Free(buf); } } return instance; }
IZ_BOOL CParagraphGroupImpl::Init( IFontHost* host, CUString& str, void* userData) { SAFE_REPLACE(m_FontHost, host); m_LineHeight = m_FontHost->GetPixelSize(); m_Ascent = m_FontHost->GetAscender(); IZ_UINT prev = 0; IZ_UINT code = 0; IZ_BOOL isSeparated = IZ_FALSE; const IZ_UINT8* start = str.GetTextPtr(); IZ_UINT lastPos = 1; str.BeginIter(); for (;;) { if (isSeparated) { start = str.GetIterPtr(); isSeparated = IZ_FALSE; } code = str.GetNext(); if (prev == CH_CR && code == CH_LF) { // skip code = str.GetNext(); } prev = code; if (_IsSeparator(code) || code == 0) { IZ_UINT pos = static_cast<IZ_UINT>(str.GetIterDistance()); IZ_UINT bytes = pos - lastPos; lastPos = pos; CParagraph* paragraph = CParagraphImpl::CreateParagraph( m_Allocator, host, str.GetCharCode(), start, bytes, userData); AddParagraph(paragraph); if (code == 0) { break; } else { isSeparated = IZ_TRUE; } } } str.EndIter(); return IZ_TRUE; }