

add_library(${TG_RENDER} SHARED
        include/render/render_lib_macro.h
        include/render/render.h
        src/render.cpp
        include/render/task.h
        src/task.cpp

        src/states_render.cpp
        src/states_render.h
        src/wnd_render.cpp
        src/wnd_render.h
        src/graphic.cpp
        src/graphic.h
        src/task_processer.cpp
        src/task_processer.h
        src/dx_exception.cpp
        src/dx_exception.h

        src/renderer.cpp
        src/renderer.h
        src/shadow_map.cpp
        src/shadow_map.h
        src/directional_shadow.cpp
        src/directional_shadow.h

        src/scene.cpp
        src/scene.h
        src/shared_model.cpp
        src/shared_model.h
        src/texture.cpp
        src/texture.h
        src/shader.cpp
        src/shader.h
        src/material.cpp
        src/material.h
        src/render_object.cpp
        src/render_object.h

        src/ibl_resources.cpp
        src/ibl_resources.h
        src/ibl_baker.cpp
        src/ibl_baker.h
        src/skybox_renderer.cpp
        src/skybox_renderer.h

)


target_compile_definitions(${TG_RENDER}
        PRIVATE
        RENDER_SHARED_LIB
        RENDER_DLL_OUTPUT
        PROJECT_ROOT="${PROJECT_SOURCE_DIR}"
)

target_link_libraries(${TG_RENDER}
        PRIVATE
        ${TG_TOOL}
        ${TG_CORE}
        D3D11
        DXGI
        D3DCompiler
        ole32
        windowscodecs
)

target_include_directories(${TG_RENDER}
        PUBLIC
        ${CMAKE_CURRENT_SOURCE_DIR}/include
        ${TEMPLATE_DIR_INCLUDE}
)
