1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:38:11 +00:00
serenity/Userland/Libraries/LibWeb/CMakeLists.txt
MacDue 830632407f LibWeb: Add BorderRadiusCornerClipper
This is a helper class for clipping the corners off a element.

This works in a similar way to how (outline) borders are painted.

The steps are:
  1. A small bitmap that fits only the corners is allocated
  2. The corners are painted into the bitmap
  3. The existing pixels (where the corners will be painted)
     are copied using the (inverse) corner bitmap as a mask
     (done before the element is painted)
  4. The element is painted
  5. The areas outside the corner radii are restored

Like with the borders, this only requires allocation on the first
paint.
2022-06-16 10:28:07 +01:00

387 lines
11 KiB
CMake

include(libweb_generators)
set(SOURCES
Bindings/AudioConstructor.cpp
Bindings/CrossOriginAbstractOperations.cpp
Bindings/CSSNamespace.cpp
Bindings/CSSRuleWrapperFactory.cpp
Bindings/CSSStyleDeclarationWrapperCustom.cpp
Bindings/EventListenerWrapper.cpp
Bindings/EventTargetWrapperFactory.cpp
Bindings/EventWrapperFactory.cpp
Bindings/IDLAbstractOperations.cpp
Bindings/ImageConstructor.cpp
Bindings/LocationConstructor.cpp
Bindings/LocationObject.cpp
Bindings/MainThreadVM.cpp
Bindings/NavigatorConstructor.cpp
Bindings/NavigatorObject.cpp
Bindings/NodeWrapperFactory.cpp
Bindings/OptionConstructor.cpp
Bindings/WindowConstructor.cpp
Bindings/WindowObject.cpp
Bindings/WindowProxy.cpp
Bindings/Wrappable.cpp
Crypto/Crypto.cpp
Crypto/SubtleCrypto.cpp
CSS/Angle.cpp
CSS/CSSConditionRule.cpp
CSS/CSSGroupingRule.cpp
CSS/CSSImportRule.cpp
CSS/CSSFontFaceRule.cpp
CSS/CSSMediaRule.cpp
CSS/CSSRule.cpp
CSS/CSSRuleList.cpp
CSS/CSSStyleDeclaration.cpp
CSS/CSSStyleRule.cpp
CSS/CSSStyleSheet.cpp
CSS/CSSSupportsRule.cpp
CSS/Display.cpp
CSS/FontFace.cpp
CSS/Frequency.cpp
CSS/Length.cpp
CSS/MediaList.cpp
CSS/MediaQuery.cpp
CSS/MediaQueryList.cpp
CSS/Parser/Block.cpp
CSS/Parser/ComponentValue.cpp
CSS/Parser/Declaration.cpp
CSS/Parser/DeclarationOrAtRule.cpp
CSS/Parser/Function.cpp
CSS/Parser/Parser.cpp
CSS/Parser/Rule.cpp
CSS/Parser/Token.cpp
CSS/Parser/Tokenizer.cpp
CSS/Percentage.cpp
CSS/PreferredColorScheme.cpp
CSS/Ratio.cpp
CSS/Resolution.cpp
CSS/ResolvedCSSStyleDeclaration.cpp
CSS/Screen.cpp
CSS/Selector.cpp
CSS/SelectorEngine.cpp
CSS/Serialize.cpp
CSS/StyleComputer.cpp
CSS/StyleProperties.cpp
CSS/StyleSheet.cpp
CSS/StyleSheetList.cpp
CSS/StyleValue.cpp
CSS/Supports.cpp
CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
CSS/Time.cpp
Cookie/ParsedCookie.cpp
DOM/AbortController.cpp
DOM/AbortSignal.cpp
DOM/Attribute.cpp
DOM/Attribute.idl
DOM/CharacterData.cpp
DOM/CharacterData.idl
DOM/Comment.cpp
DOM/CustomEvent.cpp
DOM/DOMEventListener.cpp
DOM/DOMImplementation.cpp
DOM/DOMTokenList.cpp
DOM/DOMTokenList.idl
DOM/Document.cpp
DOM/DocumentFragment.cpp
DOM/DocumentLoadEventDelayer.cpp
DOM/DocumentType.cpp
DOM/Element.cpp
DOM/ElementFactory.cpp
DOM/Event.cpp
DOM/EventDispatcher.cpp
DOM/EventTarget.cpp
DOM/HTMLCollection.cpp
DOM/LiveNodeList.cpp
DOM/NamedNodeMap.cpp
DOM/Node.cpp
DOM/NodeIterator.cpp
DOM/NodeOperations.cpp
DOM/ParentNode.cpp
DOM/Position.cpp
DOM/ProcessingInstruction.cpp
DOM/QualifiedName.cpp
DOM/Range.cpp
DOM/ShadowRoot.cpp
DOM/StaticNodeList.cpp
DOM/StaticRange.cpp
DOM/Text.cpp
DOM/Text.idl
DOM/TreeWalker.cpp
DOMParsing/InnerHTML.cpp
Dump.cpp
Encoding/TextDecoder.cpp
Encoding/TextEncoder.cpp
Fetch/AbstractOperations.cpp
FontCache.cpp
Geometry/DOMRectList.cpp
HTML/AttributeNames.cpp
HTML/BrowsingContext.cpp
HTML/BrowsingContextContainer.cpp
HTML/CanvasGradient.cpp
HTML/CanvasRenderingContext2D.cpp
HTML/CrossOrigin/Reporting.cpp
HTML/DOMParser.cpp
HTML/DOMStringMap.cpp
HTML/EventLoop/EventLoop.cpp
HTML/EventLoop/Task.cpp
HTML/EventLoop/TaskQueue.cpp
HTML/EventNames.cpp
HTML/FormAssociatedElement.cpp
HTML/GlobalEventHandlers.cpp
HTML/History.cpp
HTML/HTMLAnchorElement.cpp
HTML/HTMLAreaElement.cpp
HTML/HTMLAudioElement.cpp
HTML/HTMLBRElement.cpp
HTML/HTMLBaseElement.cpp
HTML/HTMLBlinkElement.cpp
HTML/HTMLBodyElement.cpp
HTML/HTMLButtonElement.cpp
HTML/HTMLCanvasElement.cpp
HTML/HTMLDListElement.cpp
HTML/HTMLDataElement.cpp
HTML/HTMLDataListElement.cpp
HTML/HTMLDetailsElement.cpp
HTML/HTMLDialogElement.cpp
HTML/HTMLDirectoryElement.cpp
HTML/HTMLDivElement.cpp
HTML/HTMLElement.cpp
HTML/HTMLEmbedElement.cpp
HTML/HTMLFieldSetElement.cpp
HTML/HTMLFontElement.cpp
HTML/HTMLFormElement.cpp
HTML/HTMLFrameElement.cpp
HTML/HTMLFrameSetElement.cpp
HTML/HTMLHRElement.cpp
HTML/HTMLHeadElement.cpp
HTML/HTMLHeadingElement.cpp
HTML/HTMLHtmlElement.cpp
HTML/HTMLHyperlinkElementUtils.cpp
HTML/HTMLIFrameElement.cpp
HTML/HTMLImageElement.cpp
HTML/HTMLInputElement.cpp
HTML/HTMLLIElement.cpp
HTML/HTMLLabelElement.cpp
HTML/HTMLLegendElement.cpp
HTML/HTMLLinkElement.cpp
HTML/HTMLMapElement.cpp
HTML/HTMLMarqueeElement.cpp
HTML/HTMLMediaElement.cpp
HTML/HTMLMenuElement.cpp
HTML/HTMLMetaElement.cpp
HTML/HTMLMeterElement.cpp
HTML/HTMLModElement.cpp
HTML/HTMLOListElement.cpp
HTML/HTMLObjectElement.cpp
HTML/HTMLOptGroupElement.cpp
HTML/HTMLOptionElement.cpp
HTML/HTMLOptionsCollection.cpp
HTML/HTMLOutputElement.cpp
HTML/HTMLParagraphElement.cpp
HTML/HTMLParamElement.cpp
HTML/HTMLPictureElement.cpp
HTML/HTMLPreElement.cpp
HTML/HTMLProgressElement.cpp
HTML/HTMLQuoteElement.cpp
HTML/HTMLScriptElement.cpp
HTML/HTMLSelectElement.cpp
HTML/HTMLSlotElement.cpp
HTML/HTMLSourceElement.cpp
HTML/HTMLSpanElement.cpp
HTML/HTMLStyleElement.cpp
HTML/HTMLTableCaptionElement.cpp
HTML/HTMLTableCellElement.cpp
HTML/HTMLTableColElement.cpp
HTML/HTMLTableElement.cpp
HTML/HTMLTableRowElement.cpp
HTML/HTMLTableSectionElement.cpp
HTML/HTMLTemplateElement.cpp
HTML/HTMLTextAreaElement.cpp
HTML/HTMLTimeElement.cpp
HTML/HTMLTitleElement.cpp
HTML/HTMLTrackElement.cpp
HTML/HTMLUListElement.cpp
HTML/HTMLUnknownElement.cpp
HTML/HTMLVideoElement.cpp
HTML/ImageData.cpp
HTML/MessageChannel.cpp
HTML/MessagePort.cpp
HTML/Parser/Entities.cpp
HTML/Parser/HTMLEncodingDetection.cpp
HTML/Parser/HTMLParser.cpp
HTML/Parser/HTMLToken.cpp
HTML/Parser/HTMLTokenizer.cpp
HTML/Parser/ListOfActiveFormattingElements.cpp
HTML/Parser/StackOfOpenElements.cpp
HTML/Scripting/ClassicScript.cpp
HTML/Scripting/Environments.cpp
HTML/Scripting/ExceptionReporter.cpp
HTML/Scripting/Script.cpp
HTML/Scripting/WindowEnvironmentSettingsObject.cpp
HTML/Storage.cpp
HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
HTML/TagNames.cpp
HTML/TextMetrics.cpp
HTML/Timer.cpp
HTML/Window.cpp
HTML/Worker.cpp
HTML/WorkerDebugConsoleClient.cpp
HTML/WorkerGlobalScope.cpp
HTML/WorkerLocation.cpp
HighResolutionTime/Performance.cpp
ImageDecoding.cpp
IntersectionObserver/IntersectionObserver.cpp
Layout/BlockContainer.cpp
Layout/BlockFormattingContext.cpp
Layout/Box.cpp
Layout/BoxModelMetrics.cpp
Layout/BreakNode.cpp
Layout/ButtonBox.cpp
Layout/CanvasBox.cpp
Layout/CheckBox.cpp
Layout/FlexFormattingContext.cpp
Layout/FormattingContext.cpp
Layout/FormattingState.cpp
Layout/FrameBox.cpp
Layout/ImageBox.cpp
Layout/InitialContainingBlock.cpp
Layout/InlineFormattingContext.cpp
Layout/InlineLevelIterator.cpp
Layout/InlineNode.cpp
Layout/Label.cpp
Layout/LabelableNode.cpp
Layout/LayoutPosition.cpp
Layout/LineBox.cpp
Layout/LineBoxFragment.cpp
Layout/LineBuilder.cpp
Layout/ListItemBox.cpp
Layout/ListItemMarkerBox.cpp
Layout/Node.cpp
Layout/Progress.cpp
Layout/RadioButton.cpp
Layout/ReplacedBox.cpp
Layout/SVGBox.cpp
Layout/SVGFormattingContext.cpp
Layout/SVGGeometryBox.cpp
Layout/SVGGraphicsBox.cpp
Layout/SVGSVGBox.cpp
Layout/TableBox.cpp
Layout/TableCellBox.cpp
Layout/TableFormattingContext.cpp
Layout/TableRowBox.cpp
Layout/TableRowGroupBox.cpp
Layout/TextNode.cpp
Layout/TreeBuilder.cpp
Loader/ContentFilter.cpp
Loader/FrameLoader.cpp
Loader/ImageLoader.cpp
Loader/ImageResource.cpp
Loader/LoadRequest.cpp
Loader/ProxyMappings.cpp
Loader/Resource.cpp
Loader/ResourceLoader.cpp
MimeSniff/MimeType.cpp
Namespace.cpp
NavigationTiming/PerformanceTiming.cpp
Page/EditEventHandler.cpp
Page/EventHandler.cpp
Page/Page.cpp
Painting/BackgroundPainting.cpp
Painting/BorderPainting.cpp
Painting/BorderRadiusCornerClipper.cpp
Painting/ButtonPaintable.cpp
Painting/CanvasPaintable.cpp
Painting/CheckBoxPaintable.cpp
Painting/ImagePaintable.cpp
Painting/InlinePaintable.cpp
Painting/LabelablePaintable.cpp
Painting/MarkerPaintable.cpp
Painting/NestedBrowsingContextPaintable.cpp
Painting/PaintContext.cpp
Painting/Paintable.cpp
Painting/PaintableBox.cpp
Painting/ProgressPaintable.cpp
Painting/RadioButtonPaintable.cpp
Painting/SVGGeometryPaintable.cpp
Painting/SVGGraphicsPaintable.cpp
Painting/SVGPaintable.cpp
Painting/SVGSVGPaintable.cpp
Painting/TextPaintable.cpp
Painting/ShadowPainting.cpp
Painting/StackingContext.cpp
RequestIdleCallback/IdleDeadline.cpp
ResizeObserver/ResizeObserver.cpp
SVG/AttributeNames.cpp
SVG/AttributeParser.cpp
SVG/SVGAnimatedLength.cpp
SVG/SVGClipPathElement.cpp
SVG/SVGDefsElement.cpp
SVG/SVGElement.cpp
SVG/SVGElement.cpp
SVG/SVGGElement.cpp
SVG/SVGGeometryElement.cpp
SVG/SVGGraphicsElement.cpp
SVG/SVGPathElement.cpp
SVG/SVGCircleElement.cpp
SVG/SVGEllipseElement.cpp
SVG/SVGLength.cpp
SVG/SVGLineElement.cpp
SVG/SVGPolygonElement.cpp
SVG/SVGPolylineElement.cpp
SVG/SVGRectElement.cpp
SVG/SVGSVGElement.cpp
SVG/SVGTextContentElement.cpp
SVG/TagNames.cpp
SVG/ViewBox.cpp
Selection/Selection.cpp
UIEvents/EventNames.cpp
UIEvents/FocusEvent.cpp
UIEvents/KeyboardEvent.cpp
UIEvents/MouseEvent.cpp
URL/URL.cpp
URL/URLSearchParams.cpp
URL/URLSearchParamsIterator.cpp
WebAssembly/WebAssemblyInstanceConstructor.cpp
WebAssembly/WebAssemblyInstanceObject.cpp
WebAssembly/WebAssemblyInstanceObjectPrototype.cpp
WebAssembly/WebAssemblyMemoryConstructor.cpp
WebAssembly/WebAssemblyMemoryPrototype.cpp
WebAssembly/WebAssemblyModuleConstructor.cpp
WebAssembly/WebAssemblyModuleObject.cpp
WebAssembly/WebAssemblyObject.cpp
WebAssembly/WebAssemblyTableConstructor.cpp
WebAssembly/WebAssemblyTableObject.cpp
WebAssembly/WebAssemblyTablePrototype.cpp
WebGL/WebGLContextAttributes.cpp
WebGL/WebGLRenderingContext.cpp
WebGL/WebGLRenderingContextBase.cpp
WebSockets/WebSocket.cpp
XHR/EventNames.cpp
XHR/XMLHttpRequest.cpp
XHR/XMLHttpRequestEventTarget.cpp
XML/XMLDocumentBuilder.cpp
)
generate_css_implementation()
set(GENERATED_SOURCES
CSS/DefaultStyleSheetSource.cpp
CSS/Enums.cpp
CSS/MediaFeatureID.cpp
CSS/PropertyID.cpp
CSS/QuirksModeStyleSheetSource.cpp
CSS/TransformFunctions.cpp
CSS/ValueID.cpp
)
serenity_lib(LibWeb web)
# NOTE: We link with LibSoftGPU here instead of lazy loading it via dlopen() so that we do not have to unveil the library and pledge prot_exec.
target_link_libraries(LibWeb LibCore LibJS LibMarkdown LibGemini LibGL LibGUI LibGfx LibSoftGPU LibTextCodec LibWasm LibXML)
link_with_unicode_data(LibWeb)
generate_js_wrappers(LibWeb)
# Note: If you're looking for the calls to "libweb_js_wrapper()",
# they have been moved to "idl_files.cmake"