{"id":14976752,"url":"https://github.com/arbmind/desktop-duplication-cpp","last_synced_at":"2025-04-13T05:13:32.091Z","repository":{"id":53132040,"uuid":"88431366","full_name":"arBmind/desktop-duplication-cpp","owner":"arBmind","description":"Windows Desktop Duplication Tool for live coding presentations in C++2a","archived":false,"fork":false,"pushed_at":"2024-09-25T23:18:18.000Z","size":531,"stargazers_count":61,"open_issues_count":0,"forks_count":11,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-04-13T05:13:21.493Z","etag":null,"topics":["directx","dxgi","livecoding","multithreaded","tool","windows-desktop","windows10"],"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/arBmind.png","metadata":{"files":{"readme":"README.adoc","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}},"created_at":"2017-04-16T17:33:43.000Z","updated_at":"2025-04-10T11:45:44.000Z","dependencies_parsed_at":"2023-12-30T19:23:48.280Z","dependency_job_id":"cec984f9-3881-410c-96c4-f6127979cff3","html_url":"https://github.com/arBmind/desktop-duplication-cpp","commit_stats":{"total_commits":69,"total_committers":1,"mean_commits":69.0,"dds":0.0,"last_synced_commit":"c5b0654dbfb9bf93e173e7cab19611968ca39a30"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arBmind%2Fdesktop-duplication-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arBmind%2Fdesktop-duplication-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arBmind%2Fdesktop-duplication-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arBmind%2Fdesktop-duplication-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arBmind","download_url":"https://codeload.github.com/arBmind/desktop-duplication-cpp/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665746,"owners_count":21142123,"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":["directx","dxgi","livecoding","multithreaded","tool","windows-desktop","windows10"],"created_at":"2024-09-24T13:54:21.837Z","updated_at":"2025-04-13T05:13:32.059Z","avatar_url":"https://github.com/arBmind.png","language":"C++","readme":"# Windows Desktop Duplication Tool\n\nThis is a nifty tool to host live coding in presentations or online screen grabbers.\n\n## Two in One\n\nSince 3.0 we have two modes of operations.\n\n### Presenter Mode\n\nYou have your IDE and private notes on your main screen.\nThe tool only captures the code portion of this screen and shows it fullscreen on your presentation monitor or projector.\n\nimage::/docs/usage-schema.png?raw=true[Usage Schema,583,168]\n\nPersonally I use this mode to host C\\++ usergroup meetings, team meetings and professional C++ trainings.\n\n### Capture Area Mode\n\nYou select a portion of the screen by moving the Window around.\nOnce you go \"Live\" (Context Menu or Taskbar Menu) the Window will move into the background and display whatever is displayed on top of it.\n\nHint: Your mouse cursors will trail if you have no window in front of it.\n\nPersonally I use this mode to share part of my screen in Jitsi, Matrix, Big Blue Button, Teams, Zoom or any other conferencing tool.\n\nNote: As soon as you select the window again, the capture will be pause and the contents of the window will be transparent to allow repositioning of the window without flickering.\n\n## Features\n\nBy top left part of the primary screen is duplicated to a window on the right part of the same screen.\n\nInteractions:\n\n* Move the window whereever you need it. Beamers for live coding and presentations.\n* Right click with your mouse to open a context menu\n** Pause / Start the screen grabbing operations\n** Select some common resolutions for your screen share window\n** Select the monitor to capture for Presenter Mode (Capture Area mode will select the monitor the window is in)\n** Switch between Presenter and Capture Area Mode\n* Double Left Mouseclick maximizes the window.\n** The entire screen is now mirroring (no window frame)\n** We prevent Windows from going to sleep mode in this presentation mode\n* The Zoom also changes captured area.\n** pass:[\u003ckbd\u003eCtrl\u003c/kbd\u003e] + pass:[\u003ckbd\u003eMousewheel ↕\u003c/kbd\u003e/\u003ckbd\u003e+\u003c/kbd\u003e/\u003ckbd\u003e-\u003c/kbd\u003e] allows you to zoom\n** pass:[\u003ckbd\u003eCtrl\u003c/kbd\u003e\u003ckbd\u003eShift\u003c/kbd\u003e] + pass:[\u003ckbd\u003eMousewheel ↕\u003c/kbd\u003e] zooms in smaller steps\n** pass:[\u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e0\u003c/kbd\u003e] reset zoom to 1:1\n* Moving the captured area.\n** pass:[\u003ckbd\u003eShift\u003c/kbd\u003e] + pass:[\u003ckbd\u003eLeft Mouse Button\u003c/kbd\u003e] + pass:[\u003ckbd\u003eDragging ⇔⇕\u003c/kbd\u003e] allows you to move the visible portion\n** pass:[\u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003e←\u003c/kbd\u003e/\u003ckbd\u003e↑\u003c/kbd\u003e/\u003ckbd\u003e→\u003c/kbd\u003e/\u003ckbd\u003e↓\u003c/kbd\u003e] aligns the mirrored image to the border\n* Move Window into captured area.\n** pass:[2×\u003ckbd\u003eRight Mouse Button\u003c/kbd\u003e] + [Focus other Window] will position and resize the other window into the mirrored area. Not all windows will like this.\n* Interactions:\n** Note: You can hover over the window icon in the taskbar and use the buttons there.\n** pass:[\u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003eRight Mouse Button\u003c/kbd\u003e] toggle a visualisation of the captured area\n** pass:[\u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e] toggle pause. Freezes the image.\n\nThe tool is optimized to be very response and save CPU time.\n\n## History\n\n### 3.x - TBA\n\n* Your Ideas are welcome (see Contributions)\n\n### 3.0-beta - 2023-12-26\n\n* new capture area mode\n* keep capture alive while moving or resizing the window\n* select the monitor where the capture is taken\n* capture area indicator is now fully transparent for clicks\n* added context menu\n* also show live and frozen state in capture area border colors\n\n### 2.0 - 2021-01-17\n\n* pause / freeze feature\n* visualization of state in taskbar\n* taskbar buttons for interactions\n* mitigated the double buffering bug (last change was missing)\n* performance enhancements (less CPU und GPU required)\n* cleaned up code base (easier to start new features)\n\n### 1.0 - 2017-04-16 (Revision Easter Release)\n\n* first public version\n* hand crafted at the Revision Demo Party\n* basic features are working\n\n## Requirements\n\n* DirectX 11\n* Windows 10\n\n\n## Build yourself\n\nThe desktop duplicator was build using QtCreator with Qbs and MSVC2019.\n\nThe only other thing you need is the DirectX and Windows and WRL headers. All included in the Windows 10 SDK.\n\nIf you have issues please ask.\n\n\n## License\n\nRead the LICENSE file!\n\n\n## Contributions\n\nIf you have issues or questions feel free to open a ticket.\n\nIf you can answer a question in a ticket, help is appreciated.\n\nIf you like the tool, leave a star on Github and spread the love.\n\nAll usefull pull requests are welcome! If you have an idea and are unsure, please open a ticket for discussions.\n\nEnjoy!\n\n## \\0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbmind%2Fdesktop-duplication-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farbmind%2Fdesktop-duplication-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbmind%2Fdesktop-duplication-cpp/lists"}