public Loader(DirectX3DGraphics directX3DGraphics, DirectX2DGraphics directX2DGraphics, Renderer renderer, ImagingFactory imagingFactory)
        {
            materials = new Dictionary <string, Material>();
            textures  = new Dictionary <string, Texture>();

            _directX3DGraphics = directX3DGraphics;
            _directX2DGraphics = directX2DGraphics;
            _renderer          = renderer;
            _imagingFactory    = imagingFactory;
            samplerState       = new SamplerStates(_directX3DGraphics);
        }
        /// <summary>
        /// Constructor. Initialize all objects.
        /// </summary>
        public GameProcess()
        {
            audioDevice           = new SharpAudioDevice();
            renderForm            = new RenderForm("SharpDX");
            renderForm.ClientSize = new Size(1500, 800);

            renderForm.UserResized += RenderFormResizedCallback;
            renderForm.Activated   += RenderFormActivatedCallback;
            renderForm.Deactivate  += RenderFormDeactivateCallback;
            directX3DGraphics       = new DirectX3DGraphics(renderForm);
            renderer = new Renderer(directX3DGraphics);
            renderer.CreateConstantBuffers();
            directX2DGraphics = new DirectX2DGraphics(directX3DGraphics);
            Loader loader = new Loader(directX3DGraphics, directX2DGraphics, renderer, directX2DGraphics.ImagingFactory);

            samplerStates = new SamplerStates(directX3DGraphics);
            timeHelper    = new TimeHelper();

            InitializeTextures(loader);
            renderer.SetWhiteTexture(textures["white.bmp"]);
            loader.StubTexture = textures["white.bmp"];
            materials          = loader.LoadMaterials("Resources\\materials.txt", textures);

            Vector3 initial = new Vector3(105f, 0, -105f);
            Vector4 pos     = new Vector4(0, 0, 0, 0);

            InitHUDResources();
            InitializeLight();

            inputController = new InputController(renderForm);

            mainCharacterService = new MainCharacterService("some", inputController, loader, materials[3], audioDevice);
            Queue <string> files = new Queue <string>();

            files.Enqueue("Resources\\Description\\map1.txt");
            files.Enqueue("Resources\\Description\\map1.txt");
            levelService = new LevelService(files, mainCharacterService, loader, materials[2], inputController, audioDevice);

            cameraService = new CameraService(new Camera(new Vector4(-119.0f, 144.0f, 129.0f, 1.0f)), inputController);

            Vector4 initialPosition = new Vector4(20.5f, 1f, 20.5f, 1);
            Vector4 position        = initialPosition;

            loader = null;
        }