use of com.helospark.lightdi.LightDiContext in project tactview by helospark.
the class JavaFXUiMain method init.
@Override
public void init() throws Exception {
super.init();
Platform.runLater(() -> {
splashStage = new Stage(StageStyle.DECORATED);
splashStage.setTitle("Tactview starting...");
StylesheetAdderService.setTactviewIconForStageStatic(splashStage);
splasViewh = new ImageView(new Image(getClass().getResource("/tactview-splash.png").toString()));
splashStage.initStyle(StageStyle.TRANSPARENT);
showSplash(splashStage, splasViewh);
});
LightDiContextConfiguration configuration = LightDiContextConfiguration.builder().withThreadNumber(4).withCheckForIntegrity(true).withAdditionalDependencies(Collections.singletonList(new JnaLightDiPlugin())).withUseClasspathFile(false).build();
List<Class<?>> allClasses = new ArrayList<>();
allClasses.add(MainApplicationConfiguration.class);
allClasses.addAll(PluginMainClassProviders.getPluginClasses());
lightDi = new LightDiContext(configuration);
lightDi.addPropertySource(createInitialPropertySource());
lightDi.loadDependencies(List.of(), allClasses);
uiTimeline = lightDi.getBean(UiTimeline.class);
uiTimelineManager = lightDi.getBean(UiTimelineManager.class);
effectPropertyView = lightDi.getBean(PropertyView.class);
uiTimelineManager.registerUiPlaybackConsumer(position -> uiTimeline.updateLine(position));
uiTimelineManager.registerUiPlaybackConsumer(position -> effectPropertyView.updateValues(position));
displayUpdateService = lightDi.getBean(DisplayUpdaterService.class);
projectSizeInitializer = lightDi.getBean(ProjectSizeInitializer.class);
uiTimelineManager.setDisplayUpdaterService(lightDi.getBean(DisplayUpdaterService.class));
uiProjectRepository = lightDi.getBean(UiProjectRepository.class);
renderService = lightDi.getBean(RenderDialogOpener.class);
lightDi.eagerInitAllBeans();
}
use of com.helospark.lightdi.LightDiContext in project tactview by helospark.
the class IntegrationTestUtil method startContext.
public static LightDiContext startContext() {
LightDiContextConfiguration configuration = LightDiContextConfiguration.builder().withThreadNumber(4).withCheckForIntegrity(true).withAdditionalDependencies(Collections.singletonList(new JnaLightDiPlugin())).build();
LightDiContext lightDi = LightDi.initContextByClass(TestContextConfiguration.class, configuration);
lightDi.eagerInitAllBeans();
return lightDi;
}
use of com.helospark.lightdi.LightDiContext in project tactview by helospark.
the class CommonEffectTest method testThatEffectCanBeSavedAndRestored.
@Test
public void testThatEffectCanBeSavedAndRestored() throws IOException {
LightDiContext lightDi = IntegrationTestUtil.startContext();
List<EffectFactory> effectFactories = lightDi.getListOfBeans(EffectFactory.class);
FakeUi fakeUi = lightDi.getBean(FakeUi.class);
VisualTimelineClip clip = (VisualTimelineClip) fakeUi.dragProceduralClipToFirstChannel("singlecolor", TimelinePosition.ofZero());
for (var effectFactory : effectFactories) {
StatelessEffect effect = effectFactory.createEffect(new CreateEffectRequest(TimelinePosition.ofZero(), effectFactory.getEffectId(), TimelineClipType.VIDEO, clip.getInterval()));
if (!(effect instanceof StatelessVideoEffect)) {
continue;
}
if (!(effect instanceof StatelessVideoEffect) || effectFactory.getEffectId().equals("lensdistort")) /**
* trello.201, check why this occasionally fails
*/
{
continue;
}
ReadOnlyClipImage originalFrame = getFrame((StatelessVideoEffect) effect, clip);
SaveMetadata saveMetadata = new SaveMetadata(false);
Object savedEffect = effect.generateSavedContent(saveMetadata);
String saveData = createObjectMapper(saveMetadata).writeValueAsString(savedEffect);
JsonNode readData = StaticObjectMapper.objectMapper.readTree(saveData);
StatelessEffect restoredEffect = effectFactory.restoreEffect(readData, new LoadMetadata("filepath", StaticObjectMapper.objectMapper, lightDi));
ReadOnlyClipImage clonedFrame = getFrame((StatelessVideoEffect) restoredEffect, clip);
IntegrationTestUtil.assertFrameEquals(originalFrame, clonedFrame, effectFactory.getEffectId() + " is generating different image after save and restore");
freeFrame(originalFrame);
freeFrame(clonedFrame);
}
lightDi.close();
}
use of com.helospark.lightdi.LightDiContext in project tactview by helospark.
the class CommonEffectTest method testThatEffectIsGeneratingSameImageAfterCloning.
@Test
public void testThatEffectIsGeneratingSameImageAfterCloning() {
LightDiContext lightDi = IntegrationTestUtil.startContext();
List<EffectFactory> effectFactories = lightDi.getListOfBeans(EffectFactory.class);
FakeUi fakeUi = lightDi.getBean(FakeUi.class);
VisualTimelineClip clip = (VisualTimelineClip) fakeUi.dragProceduralClipToFirstChannel("singlecolor", TimelinePosition.ofZero());
for (var effectFactory : effectFactories) {
StatelessEffect effect = effectFactory.createEffect(new CreateEffectRequest(TimelinePosition.ofZero(), effectFactory.getEffectId(), TimelineClipType.VIDEO, clip.getInterval()));
if (!(effect instanceof StatelessVideoEffect) || effectFactory.getEffectId().equals("lensdistort")) {
/**
* trello.201, check why this occasionally fails
*/
continue;
}
ReadOnlyClipImage originalFrame = getFrame((StatelessVideoEffect) effect, clip);
StatelessVideoEffect clonedEffect = (StatelessVideoEffect) effect.cloneEffect(CloneRequestMetadata.ofDefault());
ReadOnlyClipImage clonedFrame = getFrame(clonedEffect, clip);
IntegrationTestUtil.assertFrameEquals(originalFrame, clonedFrame, effectFactory.getEffectId() + " is generating different image after clone");
freeFrame(originalFrame);
freeFrame(clonedFrame);
}
lightDi.close();
}
use of com.helospark.lightdi.LightDiContext in project tactview by helospark.
the class CoreContextStartedIT method testContextShouldStart.
@Test
public void testContextShouldStart() {
LightDiContext lightDi = IntegrationTestUtil.startContext();
TactViewCoreConfiguration asd = lightDi.getBean(TactViewCoreConfiguration.class);
assertThat(asd, is(not(nullValue())));
}
Aggregations