{"id":18301352,"url":"https://github.com/lvgl/lv_port_pc_visual_studio","last_synced_at":"2025-05-15T02:06:37.287Z","repository":{"id":40498507,"uuid":"165522305","full_name":"lvgl/lv_port_pc_visual_studio","owner":"lvgl","description":"Visual Studio projects for LVGL embedded graphics library. Recommended on Windows. Linux support with Wayland is work in progress.","archived":false,"fork":false,"pushed_at":"2025-05-07T13:24:49.000Z","size":7313,"stargazers_count":669,"open_issues_count":21,"forks_count":328,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-08T21:19:15.351Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lvgl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-13T15:35:56.000Z","updated_at":"2025-05-08T11:59:27.000Z","dependencies_parsed_at":"2023-11-24T03:28:41.788Z","dependency_job_id":"be443e5a-0a85-43e4-b920-4858abe20f7a","html_url":"https://github.com/lvgl/lv_port_pc_visual_studio","commit_stats":{"total_commits":490,"total_committers":8,"mean_commits":61.25,"dds":0.1244897959183674,"last_synced_commit":"bb6308b60790fc25d717dab9e26c37cb3e0a36d3"},"previous_names":["lvgl/lv_sim_visual_studio","lvgl/lv_port_win_visual_studio"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_port_pc_visual_studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_port_pc_visual_studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_port_pc_visual_studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_port_pc_visual_studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lvgl","download_url":"https://codeload.github.com/lvgl/lv_port_pc_visual_studio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259370,"owners_count":22040819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T15:15:26.672Z","updated_at":"2025-05-15T02:06:37.232Z","avatar_url":"https://github.com/lvgl.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# LVGL for Visual Studio\n\n![Screenshot](Screenshot.png)\n\nNote: If you want to use the stable version, please use branches with the\n\"release/\" prefix. The master branch is the current development version which\nmay contains some issues like compilation failed and etc. Read\nhttps://github.com/lvgl/lv_port_pc_visual_studio/issues/101 for the 2025 Roadmap\nof the LVGL Visual Studio repository.\n\n## Introduction\n\nThis is a pre-configured Visual Studio project to try LVGL on a Windows PC. The\nproject only depend on Win32 API, C Runtime and C++ STL, so you can compile it\nwithout any extra dependencies.\n\nThe project is currently maintained using Visual Studio 2022. It may well work\nwithout modification in Visual Studio 2019 and 2017 but it is not actively \nsupported with that version, so please install and test with Visual Studio 2022\nbefore reporting any bugs.\n\n**This project is not for Visual Studio Code, it is for Visual Studio.**\n\nInstructions for cloning, building and running the application are found below.\n\n## Known Issues\n\n- The LV_MEM_SIZE macro in lv_conf.h should be 128 KiB or larger because you may\n  meet the out of memory issue when you are using the 64-bit simulator.\n  - Note: In this project, the size is set to 256 KiB.\n- Users need to check the target selected in Visual Studio, because the \n  simulator project support ARM64 and Visual Studio will choose ARM64 in the \n  first time because of the alphabetical order.\n\n## Supported Features\n\n### All Mode\n\n- Only depends on Win32 API, C Runtime and C++ STL.\n- Native support for x86, x64 and ARM64 Windows.\n- Support compiling with [VC-LTL](https://github.com/Chuyu-Team/VC-LTL) \n  toolchain to make the binary size as smaller as using MinGW.\n- Support LVGL pointer, keypad and encoder devices integration..\n- Support Windows touch input.\n- Support Windows input method integration input.\n- Support Per-monitor DPI Aware (both V1 and V2).\n\n### Specific for Simulator Mode\n\n- Designed for LVGL simulation scenario.\n- Keep the LVGL display resolution all time for trying best to simulate UI \n  layout which will see in their production devices.\n- When Windows DPI scaling setting is changed, Windows backend will stretch\n  the display content.\n- FreeType integration.\n\n### Specific for Application Mode\n\n- Designed for Windows desktop application development scenario.\n- Have the Window resizing support and LVGL display resolution will be changed.\n- When Windows DPI scaling setting is changed, the LVGL display DPI value will \n  also be changed.\n\n## How to Clone\n\nThis repository contains other, necessary LVGL software repositories as \n[git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules). Those \nsubmodules are not pulled in with the normal git clone command and they will be\nneeded. There are a couple of techniques to pull in the submodules.\n\n### Everything at Once\n\nThis command will clone the lv_port_pc_visual_studio repository and all submodules\nin a single step.\n\n```\ngit clone --recurse-submodules https://github.com/lvgl/lv_port_pc_visual_studio.git\n```\n\n### Main Repository First, Submodules Second\n\nIf you've already cloned the main repository you can pull in the submodules \nwith a second command. Both commands are shown below.\n\n```\ngit clone https://github.com/lvgl/lv_port_pc_visual_studio.git\ncd lv_port_win_visual_studio\ngit submodule update --init --recursive\n```\n\n### Keeping Your Clone Up-To-Date\n\nIf you have cloned this repository and would like to pull in the latest \nchanges, you will have to do this in two steps. The first step will pull in\nupdates to the main repo, including updated _references_ to the submodules. The\nsecond step will update the code in the submodules to match those references.\nThe two commands needed to accomplish this are shown below, run these commands\nfrom inside the main repository's directory (top level `lv_port_pc_visual_studio`\ndirectory works fine).\n\n```\ngit pull\ngit submodule update --init --recursive\n```\n\nIf you have chosen to fork this repository then updating the fork from upstream\nwill require a different, more involved procedure.\n\n## How To Build \u0026 Run\n\nOpen the `LVGL.sln` solution file in Visual Studio. Set the \n`LvglWindowsSimulator` project as the startup project. Click on the `Local Windows\nDebugger` button in the top toolbar.  The included project will be built and \nrun, launching from a cmd window.\n\n## Trying Things Out\n\nThere are a list of possible test applications in the \n[LvglWindowsSimulator.cpp](LvglWindowsSimulator/LvglWindowsSimulator.cpp) file. Each test or demo\nis launched via a single function call. By default the `lv_demo_widgets` \nfunction is the one that runs, but you can comment that one out and choose any\nof the others to compile and run.\n\nDemos outside of the default two widgets (`lv_demo_widgets` and `lv_demo_benchmark`)\ncan be enabled by editing [lv_conf.h](LvglWindowsSimulator/lv_conf.h) around line 1199\n(DEMO USAGE section) and setting the associated variable to 1 instead of 0 (i.e., \n`#define LV_USE_DEMO_MUSIC 0` -\u003e `#define LV_USE_DEMO_MUSIC 1`\n\nUse these examples to start building your own application test code inside the\nsimulator.\n\n## A Note About Versions\n\nThis repository has its submodule references updated shortly afk with minor \nversion updates. When submodule updates take place a matching version tag is\nadded tter the release of new, major releases of LittlevGL's core \n[lvgl](https://github.com/lvgl/lvgl) project. Occasionally it is updated to\nworo this repository.\n\nIf you need to pull in bug fixes in more recent changes to the submodules you\nwill have to update the references on your own. If source files are added or\nremoved in the submodules then the visual studio project will likely need\nadjusting. See the commit log for examples of submodule updates and associated\nvisual studio file changes to guide you.\n\n## Documents\n\n- [ARM32 Support Removed Notice](Documents/Arm32SupportRemovedNotice.md)\n- [How to synchronize LVGL related submodules](Documents/HowToSynchronizeLvglRelatedSubmodules.md)\n- [Default lv_conf.h Configuration](Documents/DefaultLvglConfigurations.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvgl%2Flv_port_pc_visual_studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvgl%2Flv_port_pc_visual_studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvgl%2Flv_port_pc_visual_studio/lists"}