47 lines
1.5 KiB
C++
47 lines
1.5 KiB
C++
/**
|
|
******************************************************************************
|
|
* Xenia : Xbox 360 Emulator Research Project *
|
|
******************************************************************************
|
|
* Copyright 2014 Ben Vanik. All rights reserved. *
|
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
|
******************************************************************************
|
|
*/
|
|
|
|
#ifndef XENIA_GPU_SAMPLER_INFO_H_
|
|
#define XENIA_GPU_SAMPLER_INFO_H_
|
|
|
|
#include "xenia/gpu/shader.h"
|
|
#include "xenia/gpu/xenos.h"
|
|
|
|
namespace xe {
|
|
namespace gpu {
|
|
|
|
struct SamplerInfo {
|
|
TextureFilter min_filter;
|
|
TextureFilter mag_filter;
|
|
TextureFilter mip_filter;
|
|
ClampMode clamp_u;
|
|
ClampMode clamp_v;
|
|
ClampMode clamp_w;
|
|
AnisoFilter aniso_filter;
|
|
BorderColor border_color;
|
|
float lod_bias;
|
|
|
|
static bool Prepare(const xenos::xe_gpu_texture_fetch_t& fetch,
|
|
const ParsedTextureFetchInstruction& fetch_instr,
|
|
SamplerInfo* out_info);
|
|
|
|
uint64_t hash() const;
|
|
bool operator==(const SamplerInfo& other) const {
|
|
return min_filter == other.min_filter && mag_filter == other.mag_filter &&
|
|
mip_filter == other.mip_filter && clamp_u == other.clamp_u &&
|
|
clamp_v == other.clamp_v && clamp_w == other.clamp_w &&
|
|
aniso_filter == other.aniso_filter;
|
|
}
|
|
};
|
|
|
|
} // namespace gpu
|
|
} // namespace xe
|
|
|
|
#endif // XENIA_GPU_SAMPLER_INFO_H_
|