You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
/*
|
|
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
|
* its licensors.
|
|
*
|
|
* For complete copyright and license terms please see the LICENSE at the root of this
|
|
* distribution (the "License"). All use of this software is governed by the License,
|
|
* or, if provided, by the license below or the license accompanying this file. Do not
|
|
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "../Common/DevBuffer.h"
|
|
|
|
class CD3D9Renderer;
|
|
|
|
class MultiLayerAlphaBlendPass
|
|
{
|
|
|
|
public:
|
|
|
|
static void InstallInstance();
|
|
static void ReleaseInstance();
|
|
static MultiLayerAlphaBlendPass& GetInstance();
|
|
|
|
bool IsSupported();
|
|
bool SetLayerCount(uint32_t count);
|
|
uint32_t GetLayerCount();
|
|
|
|
void ConfigureShaderFlags(uint64& flags);
|
|
|
|
void BindResources();
|
|
void UnBindResources();
|
|
void Resolve(CD3D9Renderer& renderer);
|
|
|
|
static const uint32 MAX_LAYERS;
|
|
|
|
protected:
|
|
|
|
MultiLayerAlphaBlendPass();
|
|
~MultiLayerAlphaBlendPass();
|
|
|
|
private:
|
|
|
|
static MultiLayerAlphaBlendPass* s_pInstance; // TODO: This (and related singleton functions) should be removed when there is a system in place for managing passes.
|
|
|
|
enum class SupportLevel
|
|
{
|
|
NOT_SUPPORTED,
|
|
SUPPORTED,
|
|
UNKNOWN
|
|
};
|
|
|
|
WrappedDX11Buffer m_alphaLayersBuffer;
|
|
uint32_t m_layerCount;
|
|
SupportLevel m_supported;
|
|
|
|
};
|