Files
Marshall Greenblatt 47dbc1df02 osr: win: cefclient: Update D3D11 structure to match Metal/EGL
- Support OnPaint uploads and copy shared textures into owned storage
  before OnAcceleratedPaint returns.
- Redraw the last frame on resize/expose.
- Remove the legacy OpenGL renderer and Windows GL handler.
- Preserve cached images on allocation failure and validate bounds.
- Add OsrRendererD3D11Test unit tests, ported from the Metal/EGL tests.

Tested on Windows 11 x64:
- cefclient resize and select popups work in all eight combinations
  of software/shared textures, internal/external begin frames, and
  single/multi-threaded message loops.
- ceftests: 37 renderer tests pass on hardware/WARP; one allocation
  failure test skips after the driver accepts its oversized descriptor
2026-10-10 11:15:17 -04:00
..

CEF Test Applications

This directory contains sample applications and test suites demonstrating the Chromium Embedded Framework (CEF).

Sample Applications

cefsimple

Minimal C++ browser application - the recommended starting point for learning CEF.

  • Purpose: Learning CEF basics
  • Complexity: ~10 source files
  • Best for: Understanding CEF architecture and fundamental APIs
  • Tutorial: CEF Tutorial provides detailed walkthrough

cefsimple_capi

Pure C implementation of cefsimple using the CEF C API.

  • Purpose: C API reference implementation
  • Language: Pure C (C11), no C++
  • Best for: Embedding CEF in C projects or when C++ is unavailable
  • Documentation: Using the CAPI

cefclient

Comprehensive sample application demonstrating advanced CEF features.

  • Purpose: Feature demonstration and manual testing
  • Complexity: ~100+ source files
  • Features: Full CEF API coverage, built-in test framework, multiple UI modes
  • Best for: Reference implementation, exploring advanced features

Test Suite

ceftests

Automated unit test suite for CEF API validation.

  • Purpose: Automated regression testing
  • Framework: Google Test (gtest)
  • Coverage: Comprehensive CEF API testing across all platforms
  • Best for: CI/CD integration, validating CEF releases

Shared Code

shared

Common utilities and helpers used by cefclient and ceftests.

  • Delegate pattern framework for application customization
  • Message loop implementations (standard, external pump, multi-threaded)
  • Cross-platform resource loading and file utilities
  • Not used by cefsimple or cefsimple_capi (self-contained examples)

Learning Path

New to CEF? Follow this recommended path:

  1. Start with cefsimple and the CEF Tutorial to understand CEF architecture
  2. Explore cefclient to see advanced features and integration patterns
  3. Review ceftests to understand API usage and testing patterns
  4. Study shared code for reusable patterns and best practices

For C API development, substitute cefsimple_capi for cefsimple and consult Using the CAPI.

References