.. _program_listing_file__home_runner_work_Legion-Engine_Legion-Engine_legion_engine_core_compute_program.hpp: Program Listing for File program.hpp ==================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/home/runner/work/Legion-Engine/Legion-Engine/legion/engine/core/compute/program.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "detail/cl_include.hpp" #include #include #include #include #include namespace legion::core::compute { class Program { public: Program(cl_context, cl_device_id, filesystem::basic_resource /*, bool source_is_il = false*/); Program(const Program& other) = default; Program(Program&& other) noexcept = default; Program& operator=(const Program& other) = default; Program& operator=(Program&& other) noexcept = default; Kernel kernelContext(const std::string& name); cl_kernel prewarm(const std::string& name); cl_command_queue make_cq() const { OPTICK_EVENT(); return make_command_queue(); } static void from_resource(Program* value, const filesystem::basic_resource& resource); private: friend filesystem::basic_resource; template friend T filesystem::from_resource(const filesystem::basic_resource& resource); Program() = default; std::function make_command_queue; cl_program m_program; std::unordered_map m_kernelCache; }; }