diff options
author | Connor Frank <conjfrnk@gmail.com> | 2024-04-01 17:43:00 -0400 |
---|---|---|
committer | Connor Frank <conjfrnk@gmail.com> | 2024-04-01 17:43:00 -0400 |
commit | 4c5ba92b066560e9de76ac14a491d789453617d8 (patch) | |
tree | 66f25c022c195ae5a19149c6e924397f360cc608 /windows/runner/main.cpp |
Initial Commit
Diffstat (limited to 'windows/runner/main.cpp')
-rw-r--r-- | windows/runner/main.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..1131acc --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include <flutter/dart_project.h> +#include <flutter/flutter_view_controller.h> +#include <windows.h> + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector<std::string> command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"mini_golf", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} |