Skip to content
Open

Camera #1815

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3f7ca99
Rebased
capitalistspz Feb 21, 2026
8ce967e
Check buffer size
capitalistspz Feb 22, 2026
6803aa3
Add Camera Settings menu option
capitalistspz Feb 22, 2026
c2dd05c
Fix settings window preview
capitalistspz Feb 22, 2026
b6c65ce
Fix config saving
capitalistspz Feb 22, 2026
9abf3de
Add tooltip
capitalistspz Feb 22, 2026
062c931
Some cleanup
capitalistspz Feb 22, 2026
9273143
Update `openpnp-capture` and link statically
capitalistspz Feb 22, 2026
e3157ca
Call `CAMExit` on camera lib unload
capitalistspz Feb 24, 2026
f11d731
Update `openpnp-capture` (fix Windows static linking)
capitalistspz Feb 24, 2026
7ebb151
Update `openpnp-capture` and set MSVC runtime lib
capitalistspz Feb 24, 2026
2c7c1b2
Update `openpnp-capture` (fix turbojpeg import)
capitalistspz Feb 24, 2026
c4c3233
Update openpnp-capture (fix turbojpeg link failure when used alongsid…
capitalistspz Feb 24, 2026
9cd71fe
Remove duplicate sources in `CMakeLists.txt`
capitalistspz Apr 14, 2026
d963ac7
Init `CameraManager` on open, deinit on close
capitalistspz Apr 14, 2026
c9a11e9
Remove unused variables
capitalistspz Apr 14, 2026
9c341b0
Small changes to worker thread func
capitalistspz Apr 15, 2026
4133d0d
Use `OSMutex`
capitalistspz Apr 15, 2026
3adeb69
Formatting and cleanup
capitalistspz Apr 15, 2026
5029077
`CMakeLists.txt` adjustments
capitalistspz Apr 15, 2026
9f551dc
Remove extra `#pragma once`
capitalistspz Apr 15, 2026
0999b17
Link to `CemuCamera` in `CemuBin`
capitalistspz Apr 15, 2026
50ec920
Link `CemuCommon` as `PUBLIC`
capitalistspz Apr 15, 2026
b79e8c4
Link to `CemuGui` in `CemuCamera` despite not using any GUI code
capitalistspz Apr 15, 2026
f12d6ca
Give up on using the precompiled headers
capitalistspz Apr 15, 2026
e0628ef
Revert "Give up on using the precompiled headers"
capitalistspz Apr 15, 2026
872783e
Link to `CemuConfig` in `CemuCamera`
capitalistspz Apr 15, 2026
ed1baec
Use `cemu_use_precompiled_header`
capitalistspz Apr 15, 2026
464d337
Prevent `CameraManager::Deinit` from stopping the application entirely
capitalistspz Apr 20, 2026
e22b0f0
Swap buffers during capture
capitalistspz Apr 21, 2026
13e0cae
Store camera name to config instead of unique ID
capitalistspz Jun 2, 2026
5bec8fb
Move camera code to `CemuInput`
capitalistspz Jun 2, 2026
f9a2754
Use `wxComboBox` instead of `wxChoice`
capitalistspz Jun 3, 2026
8af0209
Clean up
capitalistspz Jun 3, 2026
d26010c
Slightly more accurate behaviour
capitalistspz Jun 19, 2026
529e7d5
Switch from `openpnp-capture` to `SDL_Camera` and make camera support…
capitalistspz Jul 21, 2026
4a9b391
Make MSVC happy by complying with the standard
capitalistspz Jul 21, 2026
cd4ccdc
Make Clang 15 happy because Clang 15 is non-compliant
capitalistspz Jul 21, 2026
6ef1987
A little bit better logging
capitalistspz Jul 21, 2026
8ec325c
Display camera manager status at bottom of settings window
capitalistspz Jul 21, 2026
7144cb1
Remove remaining references to `openpnp-capture`
capitalistspz Jul 21, 2026
a4d7aa7
macOS: add camera usage string
capitalistspz Aug 1, 2026
f9b663d
macOS: add camera entitlement
capitalistspz Aug 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,11 +242,12 @@ Example usage: `cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DENABLE_SDL=ON -
|--------------------|:--|-----------------------------------------------------------------------------|---------|--------------------|
| ALLOW_PORTABLE | | Allow Cemu to use the `portable` directory to store configs and data | ON | |
| CEMU_CXX_FLAGS | | Flags passed straight to the compiler, e.g. `-march=native`, `-Wall`, `/W3` | "" | |
| ENABLE_CAMERA | | Enable camera support | ON | |
| ENABLE_CUBEB | | Enable cubeb audio backend | ON | |
| ENABLE_DISCORD_RPC | | Enable Discord Rich presence support | ON | |
| ENABLE_OPENGL | | Enable OpenGL graphics backend | ON | |
| ENABLE_HIDAPI | | Enable HIDAPI (used for Wiimote controller API) | ON | |
| ENABLE_SDL | | Enable SDLController controller API | ON | |
| ENABLE_SDL | | Enable SDLController controller API/SDLCamera implementation | ON | |
| ENABLE_VCPKG | | Use VCPKG package manager to obtain dependencies | ON | |
| ENABLE_VULKAN | | Enable the Vulkan graphics backend | ON | |
| ENABLE_WXWIDGETS | | Enable wxWidgets UI | ON | Currently required |
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ endif()
option(ENABLE_HIDAPI "Build with HIDAPI" ON)
option(ENABLE_SDL "Enables the SDLController backend" ON)
option(ENABLE_LIBUSB "Build with libusb support" ON)
option(ENABLE_CAMERA "Build with support for camera access" ON)

if (ENABLE_LIBUSB)
add_compile_definitions(HAS_LIBUSB)
Expand Down
11 changes: 11 additions & 0 deletions src/Cafe/OS/common/OSUtil.h
Original file line number Diff line number Diff line change
Expand Up @@ -242,3 +242,14 @@ MPTR makeCallableExport()
}

void osLib_addVirtualPointer(const char* libraryName, const char* functionName, uint32 vPtr);

class CafeLockGuard
{
public:
explicit CafeLockGuard(coreinit::OSMutex* mutex) : m_mutex(mutex) { coreinit::OSLockMutex(m_mutex); }
~CafeLockGuard() { coreinit::OSUnlockMutex(m_mutex); }
CafeLockGuard(const CafeLockGuard&) = delete;
CafeLockGuard& operator=(const CafeLockGuard&) = delete;
private:
coreinit::OSMutex* m_mutex;
};
Loading