Exemple #1
0
void AnimationStateMachine::update(
    IZ_FLOAT delta,
    izanagi::CSkeletonInstance* skl)
{
    SAFE_REPLACE(m_skl, skl);
    update(delta);
}
Exemple #2
0
    // ユーザー定義のシェーダをセット
    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]);
    }
Exemple #3
0
 IZ_BOOL CShaderProgramDX9::AttachPixelShader(CPixelShader* ps)
 {
     IZ_ASSERT(ps != IZ_NULL);
     
     if (m_PS == IZ_NULL) {
         SAFE_REPLACE(m_PS, ps);
     }
     return IZ_TRUE;
 }
Exemple #4
0
    IZ_BOOL CShaderProgramDX9::AttachVertexShader(CVertexShader* vs)
    {
        IZ_ASSERT(vs != IZ_NULL);

        if (m_VS == IZ_NULL) {
            SAFE_REPLACE(m_VS, vs);
        }
        return IZ_TRUE;
    }
Exemple #5
0
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;
}
Exemple #6
0
    // インスタンス作成
    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;
    }
Exemple #7
0
    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;
    }