[saco] Implement DXUTBlendColor class member functions

This commit is contained in:
RD42 committed 2024-05-13 22:35:46 +08:00
1 parent 337cc58920
commit 8793b4eb73
3 files changed
+74

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
//--------------------------------------------------------------------------------------
// File: DXUTgui.cpp
//
// Desc:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
#include "dxstdafx.h"
#include "DXUTgui.h"
#undef min // use __min instead
#undef max // use __max instead
//--------------------------------------------------------------------------------------
void DXUTBlendColor::Init( D3DCOLOR defaultColor, D3DCOLOR disabledColor, D3DCOLOR hiddenColor )
{
for( int i=0; i < MAX_CONTROL_STATES; i++ )
{
States[ i ] = defaultColor;
}
States[ DXUT_STATE_DISABLED ] = disabledColor;
States[ DXUT_STATE_HIDDEN ] = hiddenColor;
Current = hiddenColor;
}
//--------------------------------------------------------------------------------------
void DXUTBlendColor::Blend( UINT iState, float fElapsedTime, float fRate )
{
D3DXCOLOR destColor = States[ iState ];
D3DXColorLerp( &Current, &Current, &destColor, 1.0f - powf( fRate, 30 * fElapsedTime ) );
}
+38
View File
@@ -0,0 +1,38 @@
//--------------------------------------------------------------------------------------
// File: DXUTgui.h
//
// Desc:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
#pragma once
#ifndef DXUT_GUI_H
#define DXUT_GUI_H
//--------------------------------------------------------------------------------------
// Enums for pre-defined control types
//--------------------------------------------------------------------------------------
enum DXUT_CONTROL_STATE
{
DXUT_STATE_NORMAL = 0,
DXUT_STATE_DISABLED,
DXUT_STATE_HIDDEN,
DXUT_STATE_FOCUS,
DXUT_STATE_MOUSEOVER,
DXUT_STATE_PRESSED,
};
#define MAX_CONTROL_STATES 6
struct DXUTBlendColor
{
void Init( D3DCOLOR defaultColor, D3DCOLOR disabledColor = D3DCOLOR_ARGB(200, 128, 128, 128), D3DCOLOR hiddenColor = 0 );
void Blend( UINT iState, float fElapsedTime, float fRate = 0.7f );
D3DCOLOR States[ MAX_CONTROL_STATES ]; // Modulate colors for all possible control states
D3DXCOLOR Current;
};
#endif // DXUT_GUI_H
+1
View File
@@ -31,5 +31,6 @@
#include <strsafe.h>
#include "DXUTmisc.h"
#include "DXUTgui.h"
#endif // !defined(DXSDK_STDAFX_H)