# Demo Render Bridge: minimalny prawdziwy plugin UE C++ -> Python Plugin pokazuje rzeczywisty przeplyw: ```text TextureRenderTarget2D -> Python wywoluje UFUNCTION -> C++: FImageUtils::GetRenderTargetImage -> C++: FImageUtils::CompressImage(".png") -> TArray wraca do Pythona -> Python zapisuje bytes na dysku ``` ## Struktura ```text DemoPlugin.uplugin Source/DemoPlugin/DemoPlugin.Build.cs Source/DemoPlugin/Public/DemoRenderBridge.h Source/DemoPlugin/Private/DemoRenderBridge.cpp Source/DemoPlugin/Private/DemoPlugin.cpp use_plugin.py ``` ## Jak uruchomic 1. Skopiuj caly katalog jako `/Plugins/DemoPlugin`. 2. Upewnij sie, ze projekt ma modul C++ i wlaczony `Python Editor Script Plugin`. 3. Otworz projekt i zaakceptuj kompilacje pluginu albo zbuduj projekt w IDE. 4. Utworz asset `TextureRenderTarget2D` pod `/Game/Demo/RT_Demo` lub zmien sciezke `RENDER_TARGET_ASSET` w `use_plugin.py`. 5. W Unreal Editor wybierz `Tools -> Execute Python Script` i uruchom `use_plugin.py`. 6. Wynik pojawi sie jako `Saved/demo_from_cpp.png`. ## Co jest mostem do Pythona - `UCLASS()` rejestruje klase w refleksji. - `UFUNCTION(BlueprintCallable)` eksportuje funkcje. - `UDemoRenderBridge` staje sie `unreal.DemoRenderBridge`. - `RenderTargetToPng` staje sie `render_target_to_png`. - `UTextureRenderTarget2D*` przyjmuje obiekt zaladowany w Pythonie. - `TArray` wraca jako kolekcja konwertowalna przez `bytes(...)`. To jest odchudzona wersja prawdziwego render bridge'a: pomija wybor formatu, luminancje, specjalne kodowanie RGB, transport sieciowy i rozbudowana obsluge bledow. Zachowuje jednak faktyczne wywolania API C++ Unreala i prawdziwy kontrakt widoczny z Unreal Python.