#pragma once #include #include class CuspGPUData; CuspGPUData* CUSP_CM_createGpuData(int width, int height); void CUSP_CM_destroyGpuData(CuspGPUData *data); void CUSP_CM_resizeGpuData(CuspGPUData& data, int width, int height); void CUSP_CM_buildEquationSystem(CuspGPUData& data, const unsigned char* image, int width, int height, float alpha, float beta, float gamma, float gradientScaling, bool isUpsideDown = true); void CUSP_CM_setInitialSolution(CuspGPUData& data, const std::vector& values); void CUSP_CM_uploadSystem(CuspGPUData &data); void CUSP_CM_downloadSolution(CuspGPUData &data); void CUSP_CM_solveSystem(CuspGPUData& data, int iterations, float precision); const float* CUSP_CM_getSolutionPtr(const CuspGPUData& data); void CUSP_CM_copyTex(GLuint tex_in, GLuint tex_out, int width, int height); void CUSP_CM_initCuda();