android_multiviewwer/app/src/main/cpp/TransitionStrategy.h

36 lines
1.2 KiB
C
Raw Normal View History

2025-08-28 17:43:36 +09:00
#pragma once
#include <android/native_window.h>
#include "MediaAsset.h"
// Renderer 클래스에 대한 전방 선언 (순환 참조 방지)
class Renderer;
class TransitionStrategy {
public:
virtual ~TransitionStrategy() = default;
// --- ⬇️ 두 함수로 역할을 분리 ⬇️ ---
/**
* @brief .
* @param elapsedMs
* @return true
*/
virtual bool isComplete(long long elapsedMs) const = 0;
/**
* @brief .
* @param renderer Renderer ( )
* @param buffer
* @param source
* @param dest
* @param elapsedMs
* @return true, false
*/
virtual void execute(Renderer* renderer, ANativeWindow_Buffer& buffer, MediaAsset& source, MediaAsset& dest, long long elapsedMs) = 0;
virtual void reset() = 0;
protected:
TransitionStrategy(long long duration) : durationMs_(duration) {}
long long durationMs_;
};