2018-10-06 20:42:33 -07:00
|
|
|
#pragma once
|
2018-06-06 21:43:26 -07:00
|
|
|
|
2019-09-22 14:52:05 -07:00
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include "Runtime/GCNTypes.hpp"
|
|
|
|
#include "Runtime/World/CFluidPlaneCPU.hpp"
|
2018-06-06 21:43:26 -07:00
|
|
|
|
2021-04-10 01:42:06 -07:00
|
|
|
namespace metaforce {
|
2018-06-06 21:43:26 -07:00
|
|
|
|
2018-12-07 21:30:43 -08:00
|
|
|
class CFluidPlaneGPU final : public CFluidPlaneCPU {
|
2018-06-06 21:43:26 -07:00
|
|
|
public:
|
2018-12-07 21:30:43 -08:00
|
|
|
CFluidPlaneGPU(CAssetId texPattern1, CAssetId texPattern2, CAssetId texColor, CAssetId bumpMap, CAssetId envMap,
|
|
|
|
CAssetId envBumpMap, CAssetId lightMap, float unitsPerLightmapTexel, float tileSize,
|
|
|
|
u32 tileSubdivisions, EFluidType fluidType, float alpha, const zeus::CVector3f& bumpLightDir,
|
|
|
|
float bumpScale, const CFluidUVMotion& mot, float turbSpeed, float turbDistance, float turbFreqMax,
|
|
|
|
float turbFreqMin, float turbPhaseMax, float turbPhaseMin, float turbAmplitudeMax,
|
|
|
|
float turbAmplitudeMin, float specularMin, float specularMax, float reflectionBlend,
|
|
|
|
float reflectionSize, float rippleIntensity, u32 maxVertCount);
|
2018-06-06 21:43:26 -07:00
|
|
|
|
2020-04-12 06:52:36 -07:00
|
|
|
void RenderStripWithRipples(float curY, const Heights& heights, const Flags& flags, int startYDiv,
|
|
|
|
const CFluidPlaneRender::SPatchInfo& info, std::vector<CFluidPlaneShader::Vertex>& vOut,
|
2020-04-06 02:29:05 -07:00
|
|
|
std::vector<CFluidPlaneShader::PatchVertex>& pvOut) override;
|
2018-06-06 21:43:26 -07:00
|
|
|
};
|
|
|
|
|
2021-04-10 01:42:06 -07:00
|
|
|
} // namespace metaforce
|