mirror of
https://github.com/aphrody-labs/cef.git
synced 2026-10-14 05:09:23 +00:00
- 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
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:
- Start with cefsimple and the CEF Tutorial to understand CEF architecture
- Explore cefclient to see advanced features and integration patterns
- Review ceftests to understand API usage and testing patterns
- Study shared code for reusable patterns and best practices
For C API development, substitute cefsimple_capi for cefsimple and consult Using the CAPI.
References
- CEF Project - Main repository
- CEF Tutorial - Detailed architecture walkthrough
- CEF General Usage - Complete API documentation
- CEF Forum - Community support and discussions