private void Initialize() { //var backgroundColorStandard = new Color4(0.7f, 0.7f, 0.7f, 1.0f); var backgroundColorStandard = new Color4(0.157f, 0.157f, 0.157f, 1.0f); _backgroundManager = new BackgroundManager(backgroundColorStandard); _screenBufferManager = new ScreenBufferManager(_backgroundManager); _viewportManager = new ViewportManager(_control); _textureProvider = new TextureProvider(); _shaderProvider = new ShaderProvider(); _sceneManager = new SceneManager(new Scene("Main")); WorldAxes.AddAxesToNode(_shaderProvider, _sceneManager.CurrentScene); _camera = new Camera(_viewportManager); _camMovement = new CameraMovement(_camera, _control); _renderLoop = new RenderLoop(_control, _screenBufferManager, _sceneManager, _camera, _shaderProvider); _grid = new Grid(_camera, _renderLoop, new LineRenderer(_shaderProvider.DefaultShader)); _simulation = new JellySimulation(_sceneManager, _shaderProvider); _jellyInput = new JellyInput(_simulation.Jelly, _simulation.ControlFrame, _control, _camera); _window.tessellationParametersView.DataContext = Registry.TessellationLevels; _window.meshSelector.Initialize(_simulation); _window.polygonFillView.Initialize(); }
public void LoadContent() { // Load all textures from the list foreach (string texName in texturesToLoad) { if (!texIsMultiple.IsMatch(texName)) { TextureProvider.Add(texName, Content.Load <Texture2D>(texName)); } // If texture is specified in the form of "name0..20", it means that we should load "name0", "name1" ... "name20" else { string name = texMultipleGetName.Match(texName).Value; int[] range = Array.ConvertAll(texIsMultiple.Match(texName).Value.Split(new string[] { ".." }, StringSplitOptions.RemoveEmptyEntries), int.Parse); for (int i = range[0]; i <= range[1]; i++) { TextureProvider.Add(name + i, Content.Load <Texture2D>(name + i)); } } } texPixel = TextureProvider["img/pixel"]; // Load all fonts from the list foreach (string fontName in fontsToLoad) { FontProvider.Add(fontName, Content.Load <SpriteFont>(fontName)); } }
private void loadMaterials(List <ModelMaterial> modelMaterials, TextureProvider textureProvider) { foreach (ModelMaterial mtl in modelMaterials) { this.materials.Add(convertMaterial(mtl, textureProvider)); } }
public void VpkVtfCollectionTest() { TextureProvider.Register(new VmtProvider()); var collection = TextureProvider.CreateCollection(new[] { @"F:\Steam\SteamApps\common\Team Fortress 2\tf" }, null, null, null); }
protected void load(ModelData modelData, TextureProvider textureProvider) { loadMeshes(modelData.meshes); loadMaterials(modelData.materials, textureProvider); loadNodes(modelData.nodes); //loadAnimations(modelData.animations); calculateTransforms(); }
public void FixTargetTexture(GameObject go) { var renderer = go.GetComponent <Renderer>(); var material = new UnityEngine.Material(renderer.sharedMaterial); material.mainTexture = TextureProvider.GetTexture("target1-rock"); material.color = UnityEngine.Color.white; renderer.sharedMaterial = material; }
public Ship(TextureProvider textureProvider, Viewport viewport, IPlayingFieldManager playingFieldManager) : base(viewport) { _texture = textureProvider.Ship; Origin = new Vector2(_texture.Width / 2f, _texture.Height / 2f); _playingField = playingFieldManager; oldKeyState = Keyboard.GetState(); }
public void Configure() { config = new ConfigLoader <WorldConfig>(new[] { "Worlds" }).GetConfig(worldConfig); textureProvider = Voxelmetric.resources.GetTextureProvider(this); blockProvider = Voxelmetric.resources.GetBlockProvider(this); renderMaterial.mainTexture = textureProvider.atlas; }
public override void Start() { base.Start(); if (Instance == null) { Instance = this; } }
public void FixSpinnerTexture(GameObject go) { var plate = go.transform.Find("Plate").gameObject; var renderer = plate.GetComponent <Renderer>(); var material = new UnityEngine.Material(renderer.sharedMaterial); material.mainTexture = TextureProvider.GetTexture("spinner_gottlieb"); material.color = UnityEngine.Color.white; renderer.sharedMaterial = material; }
public PlayingFieldManager(TextureProvider textureProvider, Viewport viewport) { _textureProvider = textureProvider; _viewport = viewport; SpawnAsteroids(); Player = new Ship(_textureProvider, viewport, this); // Center the player in the screen. CenterObjectInScreen(Player); }
public WpfScene(TextureProvider<BitmapSource> textureProvider, MeshViewSettingsViewModel settingsViewModel) { _viewPort = new Viewport3D(); _rendererCamera = new WpfRendererCamera(_viewPort, Vector3.Zero); _textureProvider = textureProvider; var lightGroup = new Model3DGroup(); var light = new PointLight(Colors.Cornsilk, _rendererCamera.Position.AsPoint3D()); CameraLight = new WpfLight(light); lightGroup.Children.Add(light); _viewPort.Children.Add(new ModelVisual3D {Content = lightGroup}); _meshModelGroup = new Model3DGroup(); _wireFrameModelGroup = new Model3DGroup(); _allModelGroup = new Model3DGroup(); _allModelGroup.Children.Add(_meshModelGroup); _allModelGroup.Children.Add(_wireFrameModelGroup); var rotation = new RotateTransform3D(); _quaternionRotation = new QuaternionRotation3D(); rotation.Rotation = _quaternionRotation; _allModelGroup.Transform = rotation; var visual = new ModelVisual3D {Content = _allModelGroup}; _viewPort.Children.Add(visual); var border = new Border{Background = Brushes.Black}; border.Child = _viewPort; Visual = border; MouseInput = new WpfMouseInput(border); settingsViewModel.WhenAnyValue(s => s.MeshEnabled, s => s.WireFrameEnabled).Subscribe(_ => { ToggleMesh(settingsViewModel.MeshEnabled); ToggleWireFrame(settingsViewModel.WireFrameEnabled); }); settingsViewModel.WhenAnyValue( s => s.YRotation, s => s.XRotation, s => s.ZRotation).Subscribe(_ => { SetRootRotation( new Quaternion(new Vector3D(1, 0, 0), settingsViewModel.XRotation) * new Quaternion(new Vector3D(0, 1, 0), settingsViewModel.YRotation) * new Quaternion(new Vector3D(0, 0, 1), settingsViewModel.ZRotation)); }); }
public ITexture GetTexture(string name) { if (!TextureHelper.Exists(name)) { var ti = TextureCollection.GetItem(name); if (ti != null) { TextureProvider.LoadTextureItem(ti); } } return(TextureHelper.Get(name)); }
public NoesisProviderManager( XamlProvider xamlProvider, FontProvider fontProvider, TextureProvider textureProvider) { this.provider = new Provider() { XamlProvider = xamlProvider, TextureProvider = textureProvider, FontProvider = fontProvider }; }
public ProviderTexture(ApplicationContext context, TextureProvider provider) { Assert.ArgumentNotNull(context, nameof(context)); Assert.ArgumentNotNull(provider, nameof(provider)); Assert.ArgumentTrue(ReferenceEquals(provider.resolution, context.TextureResolution), $"{nameof (provider)}.resolution is not {nameof (context)}.TextureResolution"); Context = context; this.provider = provider; RenderTexture = TextureUtility.CreateRenderTexture(context.TextureResolution.AsVector); provider.Changed += (s, e) => RenderTexture = provider.Texture; }
public static void LoadTextures(TextureProvider textureProvider, SpriteProvider spriteProvider, string folderLocation) { var texturePaths = FileServices.GetResourceFiles(folderLocation, ".png", ".jpg"); // build textures and sprite foreach (var path in texturePaths) { var texture = FileServices.LoadTextureResource(path); var sprite = FileServices.CreateSpriteFromTexture(texture); textureProvider.AddTexture(texture); spriteProvider.AddSprite(sprite); } }
public TextureProvider GetTextureProvider(World world) { // Check for the folder in the dictionary and if it doesn't exist create it TextureProvider textureProvider; if (TextureProviders.TryGetValue(world.config.textureFolder, out textureProvider)) { return(textureProvider); } textureProvider = TextureProvider.Create(world.config); TextureProviders.Add(world.config.textureFolder, textureProvider); return(textureProvider); }
public static void Start() { MapProvider.Register(new RmfProvider()); MapProvider.Register(new VmfProvider()); GameDataProvider.Register(new FgdProvider()); TextureProvider.Register(new WadProvider()); // var editor = new Editor.Editor(); // editor.Load += (sender, e) => PostStart(sender as Editor.Editor); // Application.Run(editor); // var settings = Context.DBContext.GetAllSettings().ToDictionary(x => x.Key, x => x.Value); // Serialise.DeserialiseSettings(settings); // var settingsform = new Editor.Settings.SettingsForm(); // Application.Run(settingsform); // var map = MapProvider.GetMapFromFile(MapFile); // Document.Game = Game; // Document.Map = map; // Document.GameData = GameDataProvider.GetGameDataFromFiles(Game.Fgds.Select(f => f.Path)); // var entity = new EntityEditor(); // entity.Objects.AddRange(map.WorldSpawn.Children.OfType<Entity>().Take(1)); // Application.Run(entity); /* * var nat = new NativeFile(new DirectoryInfo(@"F:\Steam\steamapps\common\Half-Life")); * var gcf1 = new GcfFile(@"F:\Steam\steamapps\half-life.gcf"); * var gcf2 = new GcfFile(@"F:\Steam\steamapps\half-life engine.gcf"); * //var gcf3 = new GcfFile(@"F:\Steam\steamapps\half-life base content.gcf"); * var gcf4 = new GcfFile(@"F:\Steam\steamapps\platform.gcf"); * var com = new CompositeFile(null, new IFile[] { nat, gcf1, gcf2, gcf4 }); */ var nat = new NativeFile(new DirectoryInfo(@"F:\Half-Life WON")); var com = new CompositeFile(null, new[] { new NativeFile(new DirectoryInfo(@"F:\Half-Life WON\valve")), new NativeFile(new DirectoryInfo(@"F:\Half-Life WON\tfc")), }); //var pak = new PakFile(@"F:\Half-Life WON\valve\pak0.pak"); // var vir = new VirtualFile(null, "valve", new[] {pak}); //var com = new CompositeFile(null, new IFile[] { nat, vir }); var fsb = new FileSystemBrowserControl { Dock = DockStyle.Fill, File = com }; //, FilterText = "WAD Files", Filter = "*.wad"}; var form = new Form { Controls = { fsb }, Width = 500, Height = 500 }; Application.Run(form); }
public void Configure() { config = new ConfigLoader <WorldConfig>(new[] { "Worlds" }).GetConfig(worldConfig); VerifyConfig(); textureProvider = Voxelmetric.resources.GetTextureProvider(this); blockProvider = Voxelmetric.resources.GetBlockProvider(this); textureProvider.Init(config); blockProvider.Init(config.blockFolder, this); foreach (var renderMaterial in renderMaterials) { renderMaterial.mainTexture = textureProvider.atlas; } }
public UxContext( string windowTitle, IUxConfig uxConfig, string imagesPath, string audiosPath, string fontsPath ) { Title = windowTitle; UxConfig = uxConfig; OnWindowResize(uxConfig.ScreenSize); var sdlWindowFlags = SDL.SDL_WindowFlags.SDL_WINDOW_RESIZABLE; if (uxConfig.Maximized) { sdlWindowFlags |= SDL.SDL_WindowFlags.SDL_WINDOW_MAXIMIZED; } SDL.SDL_Init(SDL.SDL_INIT_VIDEO | SDL.SDL_INIT_AUDIO); SDL_ttf.TTF_Init(); Window = SDL.SDL_CreateWindow( windowTitle, SDL.SDL_WINDOWPOS_CENTERED, SDL.SDL_WINDOWPOS_CENTERED, ScreenSize.Width, ScreenSize.Height, sdlWindowFlags ); WRenderer = SDL.SDL_CreateRenderer(Window, -1, 0); SDL.SDL_SetRenderDrawColor(WRenderer, 0, 0, 0, 0); SDL.SDL_SetRenderDrawBlendMode(WRenderer, SDL.SDL_BlendMode.SDL_BLENDMODE_BLEND); SDL_mixer.Mix_OpenAudio(44100, SDL_mixer.MIX_DEFAULT_FORMAT, 2, 2048); TextureProvider = new TextureProvider(WRenderer, imagesPath); AudioProvider = new AudioProvider(audiosPath); FontProvider = new FontProvider(fontsPath); }
public TextureLoader(TextureProvider <Bitmap> textureProvider) { _textureProvider = textureProvider; }
public void Start() { /* RESOURCE LIST CREATION */ #if UNITY_EDITOR AssetDatabase.Refresh(); FileServices.CreateResourcesList("Assets/Resources/resourceslist.txt"); #endif FileServices.LoadResourcesList("resourceslist"); #region LOAD RESOURCES // logger and ioc _logger = new Logger("info.log", false); _resolver = new IoCResolver(_logger); _resolver.RegisterItem(_logger); _config = new UserConfigurationManager(new UserConfigurationData { GameVolume = 1f, MusicVolume = 1f }); _resolver.RegisterItem(_config); // messager _messager = new Messager(); _resolver.RegisterItem(_messager); // unity reference master _unity = GetComponent <UnityReferenceMaster>(); _unity.DebugModeActive = false; _resolver.RegisterItem(_unity); // player var player = new UserAccountManager(); _resolver.RegisterItem(player); // material provider var materialProvider = new MaterialProvider(_logger); MaterialLoader.LoadMaterial(materialProvider, "Materials"); _resolver.RegisterItem(materialProvider); // texture provider var textureProvider = new TextureProvider(_logger); var spriteProvider = new SpriteProvider(_logger); TextureLoader.LoadTextures(textureProvider, spriteProvider, "Textures"); _resolver.RegisterItem(textureProvider); _resolver.RegisterItem(spriteProvider); // sound provider var soundProvider = new SoundProvider(_logger); SoundLoader.LoadSounds(_logger, soundProvider, "Sounds"); _resolver.RegisterItem(soundProvider); // prefab provider var prefabProvider = new PrefabProvider(_logger); PrefabLoader.LoadPrefabs(prefabProvider); _resolver.RegisterItem(prefabProvider); // pooling var poolingObjectManager = new PoolingObjectManager(_logger, prefabProvider); _resolver.RegisterItem(poolingObjectManager); var soundPoolManager = new PoolingAudioPlayer(_logger, _config, _unity, prefabProvider.GetPrefab("audio_source_prefab")); _resolver.RegisterItem(soundPoolManager); _particles = new PoolingParticleManager(_resolver); _resolver.RegisterItem(_particles); // canvas provider var canvasProvider = new CanvasProvider(_logger); _unity.LoadCanvases(canvasProvider); _resolver.RegisterItem(canvasProvider); // data provider var gameDataProvider = new GameDataProvider(_logger); /* DATA GOES HERE */ _resolver.RegisterItem(gameDataProvider); #endregion _uiManager = new UiManager(); _resolver.RegisterItem(_uiManager); // lock the resolver (stop any new items being registered) _resolver.Lock(); /* BEGIN STATE */ _currentState = new MenuState(_resolver); _currentState.Initialize(); /* SUBSCRIBE FOR GAME END */ _onExit = _messager.Subscribe <ExitMessage>(OnExit); }
public void Close() { Scheduler.Clear(this); TextureProvider.DeleteCollection(TextureCollection); Renderer.Dispose(); }
/// <summary> /// Installs providers that expose resources for Noesis theme. /// </summary> public static void SetThemeProviders(XamlProvider xamlProvider = null, FontProvider fontProvider = null, TextureProvider textureProvider = null) { GUI.SetXamlProvider(new EmbeddedXamlProvider(null, null, xamlProvider)); GUI.SetFontProvider(new EmbeddedFontProvider(null, null, fontProvider)); GUI.SetTextureProvider(textureProvider); GUI.SetFontFallbacks(Theme.FontFallbacks); GUI.SetFontDefaultProperties(Theme.DefaultFontSize, Theme.DefaultFontWeight, Theme.DefaultFontStretch, Theme.DefaultFontStyle); }
public Document(string mapFile, Map map, Game game) { MapFile = mapFile; Map = map; Game = game; Environment = new GameEnvironment(game); MapFileName = mapFile == null ? DocumentManager.GetUntitledDocumentName() : Path.GetFileName(mapFile); SelectListTransform = Matrix4.Identity; _subscriptions = new DocumentSubscriptions(this); _memory = new DocumentMemory(); var cam = Map.GetActiveCamera(); if (cam != null) { _memory.SetCamera(cam.EyePosition, cam.LookPosition); } Selection = new SelectionManager(this); History = new HistoryManager(this); if (Map.GridSpacing <= 0) { Map.GridSpacing = Grid.DefaultSize; } try { GameData = GameDataProvider.GetGameDataFromFiles(game.Fgds.Select(f => f.Path)); } catch (ProviderException) { // TODO: Error logging GameData = new GameData(); } if (game.OverrideMapSize) { GameData.MapSizeLow = game.OverrideMapSizeLow; GameData.MapSizeHigh = game.OverrideMapSizeHigh; } TextureCollection = TextureProvider.CreateCollection(Environment.GetGameDirectories(), Game.AdditionalPackages, Game.GetTextureBlacklist(), Game.GetTextureWhitelist()); /* .Union(GameData.MaterialExclusions) */ // todo material exclusions var texList = Map.GetAllTextures(); var items = TextureCollection.GetItems(texList); TextureProvider.LoadTextureItems(items); Map.PostLoadProcess(GameData, GetTexture, SettingsManager.GetSpecialTextureOpacity); Map.UpdateDecals(this); Map.UpdateModels(this); Map.UpdateSprites(this); HelperManager = new HelperManager(this); Renderer = new RenderManager(this); if (MapFile != null) { Mediator.Publish(EditorMediator.FileOpened, MapFile); } // Autosaving if (Game.Autosave) { var at = Math.Max(1, Game.AutosaveTime); Scheduler.Schedule(this, Autosave, TimeSpan.FromMinutes(at)); } }
private void EditorLoad(object sender, EventArgs e) { FileTypeRegistration.RegisterFileTypes(); SettingsManager.Read(); if (TaskbarManager.IsPlatformSupported) { TaskbarManager.Instance.ApplicationId = FileTypeRegistration.ProgramId; _jumpList = JumpList.CreateJumpList(); _jumpList.KnownCategoryToDisplay = JumpListKnownCategoryType.Recent; _jumpList.Refresh(); } UpdateDocumentTabs(); UpdateRecentFiles(); DockBottom.Hidden = DockLeft.Hidden = DockRight.Hidden = true; MenuManager.Init(mnuMain, tscToolStrip); MenuManager.Rebuild(); SidebarManager.Init(RightSidebar); ViewportManager.Init(TableSplitView); ToolManager.Init(); foreach (var tool in ToolManager.Tools) { var tl = tool; var hotkey = Sledge.Settings.Hotkeys.GetHotkeyForMessage(HotkeysMediator.SwitchTool, tool.GetHotkeyToolType()); tspTools.Items.Add(new ToolStripButton( "", tl.GetIcon(), (s, ea) => Mediator.Publish(HotkeysMediator.SwitchTool, tl.GetHotkeyToolType()), tl.GetName()) { Checked = (tl == ToolManager.ActiveTool), ToolTipText = tl.GetName() + (hotkey != null ? " (" + hotkey.Hotkey + ")" : ""), DisplayStyle = ToolStripItemDisplayStyle.Image, ImageScaling = ToolStripItemImageScaling.None, AutoSize = false, Width = 36, Height = 36 } ); } TextureProvider.SetCachePath(SettingsManager.GetTextureCachePath()); MapProvider.Register(new RmfProvider()); MapProvider.Register(new MapFormatProvider()); MapProvider.Register(new VmfProvider()); MapProvider.Register(new ObjProvider()); GameDataProvider.Register(new FgdProvider()); TextureProvider.Register(new WadProvider()); TextureProvider.Register(new SprProvider()); TextureProvider.Register(new VmtProvider()); ModelProvider.Register(new MdlProvider()); WadProvider.ReplaceTransparentPixels = !Sledge.Settings.View.DisableWadTransparency && !Sledge.Settings.View.GloballyDisableTransparency; TextureHelper.EnableTransparency = !Sledge.Settings.View.GloballyDisableTransparency; TextureHelper.DisableTextureFiltering = Sledge.Settings.View.DisableTextureFiltering; TextureHelper.ForceNonPowerOfTwoResize = Sledge.Settings.View.ForcePowerOfTwoTextureResizing; Subscribe(); Mediator.MediatorException += (mthd, ex) => Logging.Logger.ShowException(ex.Exception, "Mediator Error: " + ex.Message); if (Sledge.Settings.View.LoadSession) { foreach (var session in SettingsManager.LoadSession()) { LoadFileGame(session.Item1, session.Item2); } } ProcessArguments(System.Environment.GetCommandLineArgs()); }
public Texture2D GetTexture() { return(TextureProvider.GetTexture(Shape, TextureData)); }
protected Material convertMaterial(ModelMaterial mtl, TextureProvider textureProvider) { Material result = new Material(); result.id = mtl.id; if (mtl.ambient != default(Color)) { result.set(new ColorAttribute(ColorAttribute.Ambient, mtl.ambient)); } if (mtl.diffuse != default(Color)) { result.set(new ColorAttribute(ColorAttribute.Diffuse, mtl.diffuse)); } if (mtl.specular != default(Color)) { result.set(new ColorAttribute(ColorAttribute.Specular, mtl.specular)); } if (mtl.emissive != default(Color)) { result.set(new ColorAttribute(ColorAttribute.Emissive, mtl.emissive)); } if (mtl.reflection != default(Color)) { result.set(new ColorAttribute(ColorAttribute.Reflection, mtl.reflection)); } if (mtl.shininess > 0f) { result.set(new FloatAttribute(FloatAttribute.Shininess, mtl.shininess)); } if (mtl.opacity != 1.0f) { result.set(new BlendingAttribute(true, BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha, mtl.opacity)); } var textures = new Dictionary <string, Texture>(); // FIXME uvScaling/uvTranslation totally ignored if (mtl.textures != null) { foreach (ModelTexture tex in mtl.textures) { Texture texture; if (textures.ContainsKey(tex.fileName)) { texture = textures[tex.fileName]; } else { texture = textureProvider.load(tex.fileName); textures.Add(tex.fileName, texture); disposables.Add(texture); } var descriptor = new TextureDescriptor(texture); descriptor.minFilter = texture.getMinFilter(); descriptor.magFilter = texture.getMagFilter(); descriptor.uWrap = texture.getUWrap(); descriptor.vWrap = texture.getVWrap(); float offsetU = tex.uvTranslation == null ? 0f : tex.uvTranslation.X; float offsetV = tex.uvTranslation == null ? 0f : tex.uvTranslation.Y; float scaleU = tex.uvScaling == null ? 1f : tex.uvScaling.X; float scaleV = tex.uvScaling == null ? 1f : tex.uvScaling.Y; switch (tex.usage) { case ModelTexture.USAGE_DIFFUSE: result.set(new TextureAttribute(TextureAttribute.Diffuse, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_SPECULAR: result.set(new TextureAttribute(TextureAttribute.Specular, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_BUMP: result.set(new TextureAttribute(TextureAttribute.Bump, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_NORMAL: result.set(new TextureAttribute(TextureAttribute.Normal, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_AMBIENT: result.set(new TextureAttribute(TextureAttribute.Ambient, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_EMISSIVE: result.set(new TextureAttribute(TextureAttribute.Emissive, descriptor, offsetU, offsetV, scaleU, scaleV)); break; case ModelTexture.USAGE_REFLECTION: result.set(new TextureAttribute(TextureAttribute.Reflection, descriptor, offsetU, offsetV, scaleU, scaleV)); break; } } } return(result); }
public static void LoadTextureAsync(string path, TextureDataSource source, TextureFormat format, bool mipmaps, System.Action <Texture2D> action) { TextureProvider provider = GetProviderForPath(path, source); provider.LoadAsync(path, format, mipmaps, action); }
public Model(ModelData modelData, TextureProvider textureProvider) { load(modelData, textureProvider); }