John Boiles 2700db9ff9 Add virtualcam plugin to OBS codebase
Co-authored-by: lvsti <lvsti@users.noreply.github.com>
Co-authored-by: Sebastian Beckmann <beckmann.sebastian@outlook.de>
Co-authored-by: Stefan Huber <sh@signalwerk.ch>
Co-authored-by: Ryohei Ikegami <iofg2100@gmail.com>
Co-authored-by: Colin Dean <colin.dean@target.com>
Co-authored-by: Wolfgang Ladermann <extern.ladermann_wolfgang@allianz.de>
Co-authored-by: Simon Eves <simon.eves@omnisci.com>
Co-authored-by: Colin Nelson <colnnelson@google.com>
Co-authored-by: Yoshimasa Niwa <niw@niw.at>
Co-authored-by: Michael Karliner <mike@modern-industry.com>
Co-authored-by: Jason Grout <jgrout6@bloomberg.net>
Co-authored-by: Alfredo Inostroza <jadenguy@gmail.com>
Co-authored-by: Daniel Kennett <daniel@cascable.se>
Co-authored-by: Gary Ewan Park <gep13@gep13.co.uk>
Co-authored-by: José Carlos Cieni Júnior <cienijr@outlook.com>
2020-10-30 23:36:57 -07:00

1453 lines
42 KiB
Plaintext

//
// TestCard.m
// dal-plugin
//
// Created by John Boiles on 5/8/20.
//
#import "TestCard.h"
#import <AppKit/AppKit.h>
#import "Defines.h"
// This code was generated by Trial version of PaintCode, therefore cannot be used for commercial purposes.
// http://www.paintcodeapp.com
void DrawTestCardWithFrame(CGContextRef context, NSRect frame)
{
if (context == NULL) {
context = NSGraphicsContext.currentContext.CGContext;
}
BOOL showText = (frame.size.width >= 1280 && frame.size.height >= 720);
CGFloat centerWidth = floor(frame.size.width * 0.70840 - 0.25) -
floor(frame.size.width * 0.29199 - 0.25);
NSRect center = NSMakeRect(
NSMinX(frame) + floor(frame.size.width * 0.29199 - 0.25) + 0.75,
NSMinY(frame) + floor((frame.size.height - centerWidth) / 2),
centerWidth, centerWidth);
NSString *versionText = PLUGIN_VERSION;
// Paste in PaintCode code below
//// Color Declarations
NSColor *fillColor = [NSColor colorWithRed:0.125
green:0.176
blue:0.435
alpha:1];
NSColor *fillColor2 = [NSColor colorWithRed:0.086
green:0.141
blue:0.345
alpha:1];
NSColor *fillColor3 = [NSColor colorWithRed:0.047
green:0.086
blue:0.2
alpha:1];
NSColor *strokeColor = [NSColor colorWithRed:1 green:1 blue:1 alpha:1];
NSColor *fillColor4 = [NSColor colorWithRed:0
green:0
blue:0
alpha:0.62];
NSColor *fillColor5 = [NSColor colorWithRed:0.188
green:0.18
blue:0.192
alpha:1];
NSColor *fillColor6 = [NSColor colorWithRed:0.769
green:0.761
blue:0.769
alpha:1];
NSColor *textForeground = [NSColor colorWithRed:1
green:1
blue:1
alpha:1];
NSColor *fillColor7 = [NSColor colorWithRed:1 green:1 blue:1 alpha:1];
NSColor *fillColor8 = [NSColor colorWithRed:0
green:0
blue:0.753
alpha:1];
NSColor *fillColor9 = [NSColor colorWithRed:0
green:0.753
blue:0
alpha:1];
NSColor *fillColor10 = [NSColor colorWithRed:0.753
green:0
blue:0
alpha:1];
//// Subframes
NSRect background = NSMakeRect(NSMinX(frame), NSMinY(frame),
frame.size.width, frame.size.height);
// NSRect center = NSMakeRect(NSMinX(frame) + floor(frame.size.width * 0.29199 - 0.25) + 0.75, NSMinY(frame) + floor(frame.size.height * 0.12917 + 0.5), floor(frame.size.width * 0.70840 - 0.25) - floor(frame.size.width * 0.29199 - 0.25), floor(frame.size.height * 0.86944 + 0.5) - floor(frame.size.height * 0.12917 + 0.5));
NSRect regularText = NSMakeRect(
NSMinX(frame) +
floor((frame.size.width - 274.23) * 0.04061 - 0.34) +
0.84,
NSMinY(frame) +
floor((frame.size.height - 352.53) * 0.42711 - 0.45) +
0.95,
274.23, 352.53);
NSRect rGB = NSMakeRect(
NSMinX(frame), NSMinY(frame) - 0.98,
floor((frame.size.width) * 0.03223 + 0.24) + 0.26,
floor((frame.size.height + 0.98) * 0.02185 - 1.25) + 1.75);
NSRect topRight = NSMakeRect(NSMinX(frame) + frame.size.width - 93.46,
NSMinY(frame) + 0.04, 93.42, 93.52);
NSRect bottomLeft = NSMakeRect(
NSMinX(frame), NSMinY(frame) + frame.size.height - 93.55, 93.42,
93.51);
//// Background
{
//// Rectangle Drawing
NSBezierPath *rectanglePath = [NSBezierPath
bezierPathWithRect:
NSMakeRect(
NSMinX(background) +
floor(background.size.width *
0.00000 +
0.5),
NSMinY(background) +
floor(background.size.height *
0.00000 +
0.5),
floor(background.size.width * 1.00000 +
0.5) -
floor(background.size.width *
0.00000 +
0.5),
floor(background.size.height * 0.24874 +
0.41) -
floor(background.size.height *
0.00000 +
0.5) +
0.09)];
[fillColor setFill];
[rectanglePath fill];
//// Rectangle 2 Drawing
NSBezierPath *rectangle2Path = [NSBezierPath
bezierPathWithRect:
NSMakeRect(
NSMinX(background) +
floor(background.size.width *
0.00000 +
0.5),
NSMinY(background) +
floor(background.size.height *
0.24874 +
0.41) +
0.09,
floor(background.size.width * 1.00000 +
0.5) -
floor(background.size.width *
0.00000 +
0.5),
floor(background.size.height * 1.00000 +
0.5) -
floor(background.size.height *
0.24874 +
0.41) -
0.09)];
[fillColor setFill];
[rectangle2Path fill];
//// Bezier Drawing
NSBezierPath *bezierPath = [NSBezierPath bezierPath];
[bezierPath
moveToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.49645 * background.size
.height)];
[bezierPath
curveToPoint:NSMakePoint(
NSMinX(background) +
0.71753 * background.size
.width,
NSMinY(background) +
0.62275 * background.size
.height)
controlPoint1:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.48916 * background.size
.height)
controlPoint2:NSMakePoint(
NSMinX(background) +
0.71753 * background.size
.width,
NSMinY(background) +
0.62275 *
background.size
.height)];
[bezierPath
curveToPoint:NSMakePoint(
NSMinX(background) +
0.00000 * background.size
.width,
NSMinY(background) +
0.28446 * background.size
.height)
controlPoint1:NSMakePoint(
NSMinX(background) +
0.71753 * background.size
.width,
NSMinY(background) +
0.62275 * background.size
.height)
controlPoint2:NSMakePoint(
NSMinX(background) +
0.15141 * background.size
.width,
NSMinY(background) +
0.36204 *
background.size
.height)];
[bezierPath
lineToPoint:NSMakePoint(
NSMinX(background) +
0.00000 * background.size
.width,
NSMinY(background) +
0.24823 * background.size
.height)];
[bezierPath
lineToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.24823 * background.size
.height)];
[bezierPath
lineToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.49645 * background.size
.height)];
[bezierPath closePath];
[fillColor2 setFill];
[bezierPath fill];
//// Bezier 2 Drawing
NSBezierPath *bezier2Path = [NSBezierPath bezierPath];
[bezier2Path
moveToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.49645 * background.size
.height)];
[bezier2Path
lineToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
1.00000 * background.size
.height)];
[bezier2Path
lineToPoint:NSMakePoint(
NSMinX(background) +
0.00000 * background.size
.width,
NSMinY(background) +
1.00000 * background.size
.height)];
[bezier2Path
lineToPoint:NSMakePoint(
NSMinX(background) +
0.00000 * background.size
.width,
NSMinY(background) +
0.78019 * background.size
.height)];
[bezier2Path
lineToPoint:NSMakePoint(
NSMinX(background) +
1.00000 * background.size
.width,
NSMinY(background) +
0.49645 * background.size
.height)];
[bezier2Path closePath];
[fillColor3 setFill];
[bezier2Path fill];
}
//// Center
{
//// Oval Drawing
NSBezierPath *ovalPath = [NSBezierPath
bezierPathWithOvalInRect:
NSMakeRect(NSMinX(center) +
floor(center.size.width *
0.00000 +
0.5),
NSMinY(center) +
floor(center.size.height *
0.00000 +
0.5),
floor(center.size.width * 1.00000 +
0.5) -
floor(center.size.width *
0.00000 +
0.5),
floor(center.size.height * 1.00000 +
0.5) -
floor(center.size.height *
0.00000 +
0.5))];
[fillColor4 setFill];
[ovalPath fill];
[strokeColor setStroke];
ovalPath.lineWidth = 2;
[ovalPath stroke];
//// Rectangle 3 Drawing
NSBezierPath *rectangle3Path = [NSBezierPath
bezierPathWithRect:
NSMakeRect(NSMinX(center) +
floor(center.size.width *
0.15572 +
0.5),
NSMinY(center) +
floor(center.size.height *
0.15572 +
0.5),
floor(center.size.width * 0.84428 +
0.5) -
floor(center.size.width *
0.15572 +
0.5),
floor(center.size.height * 0.84428 +
0.5) -
floor(center.size.height *
0.15572 +
0.5))];
[strokeColor setStroke];
rectangle3Path.lineWidth = 2;
[rectangle3Path stroke];
//// Oval 2 Drawing
NSBezierPath *oval2Path = [NSBezierPath
bezierPathWithOvalInRect:
NSMakeRect(NSMinX(center) +
floor(center.size.width *
0.37715 +
0.48) +
0.02,
NSMinY(center) +
floor(center.size.height *
0.37715 +
0.48) +
0.02,
floor(center.size.width * 0.62285 -
0.48) -
floor(center.size.width *
0.37715 +
0.48) +
0.96,
floor(center.size.height * 0.62285 -
0.48) -
floor(center.size.height *
0.37715 +
0.48) +
0.96)];
[fillColor5 setFill];
[oval2Path fill];
[strokeColor setStroke];
oval2Path.lineWidth = 3.47;
[oval2Path stroke];
//// Bezier 3 Drawing
NSBezierPath *bezier3Path = [NSBezierPath bezierPath];
[bezier3Path
moveToPoint:NSMakePoint(
NSMinX(center) +
0.43774 * center.size.width,
NSMinY(center) +
0.43569 *
center.size.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.43777 * center.size.width,
NSMinY(center) +
0.43553 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.47053 *
center.size.width,
NSMinY(center) +
0.39283 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.44169 *
center.size.width,
NSMinY(center) +
0.41708 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.45373 *
center.size.width,
NSMinY(center) +
0.40139 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.46134 *
center.size.width,
NSMinY(center) +
0.40126 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.46749 *
center.size.width,
NSMinY(center) +
0.39584 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.46401 *
center.size.width,
NSMinY(center) +
0.39809 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.46106 * center.size.width,
NSMinY(center) +
0.40157 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.44863 *
center.size.width,
NSMinY(center) +
0.44638 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.45011 *
center.size.width,
NSMinY(center) +
0.41373 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.44551 *
center.size.width,
NSMinY(center) +
0.43032 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.49915 *
center.size.width,
NSMinY(center) +
0.48885 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.45226 *
center.size.width,
NSMinY(center) +
0.46965 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.47476 *
center.size.width,
NSMinY(center) +
0.48919 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.54568 *
center.size.width,
NSMinY(center) +
0.46244 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.51803 *
center.size.width,
NSMinY(center) +
0.48969 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.53644 *
center.size.width,
NSMinY(center) +
0.47885 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.54557 * center.size.width,
NSMinY(center) +
0.46243 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.59607 *
center.size.width,
NSMinY(center) +
0.48985 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.56578 *
center.size.width,
NSMinY(center) +
0.46314 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.58447 *
center.size.width,
NSMinY(center) +
0.47329 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.60657 *
center.size.width,
NSMinY(center) +
0.51871 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.60175 *
center.size.width,
NSMinY(center) +
0.49825 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.60626 *
center.size.width,
NSMinY(center) +
0.50827 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.60649 * center.size.width,
NSMinY(center) +
0.51837 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.58067 *
center.size.width,
NSMinY(center) +
0.48533 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.60272 *
center.size.width,
NSMinY(center) +
0.50431 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.59340 *
center.size.width,
NSMinY(center) +
0.49239 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.58087 * center.size.width,
NSMinY(center) +
0.48544 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.50993 *
center.size.width,
NSMinY(center) +
0.50579 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.55566 *
center.size.width,
NSMinY(center) +
0.47147 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.52390 *
center.size.width,
NSMinY(center) +
0.48058 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.50541 *
center.size.width,
NSMinY(center) +
0.51670 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.50801 *
center.size.width,
NSMinY(center) +
0.50924 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.50649 *
center.size.width,
NSMinY(center) +
0.51291 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.50550 * center.size.width,
NSMinY(center) +
0.51637 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.50977 *
center.size.width,
NSMinY(center) +
0.55699 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.50161 *
center.size.width,
NSMinY(center) +
0.52995 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.50314 *
center.size.width,
NSMinY(center) +
0.54451 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.50940 * center.size.width,
NSMinY(center) +
0.55691 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.46769 *
center.size.width,
NSMinY(center) +
0.58611 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.50026 *
center.size.width,
NSMinY(center) +
0.57211 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.48510 *
center.size.width,
NSMinY(center) +
0.58273 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.42781 *
center.size.width,
NSMinY(center) +
0.58115 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.45419 *
center.size.width,
NSMinY(center) +
0.58894 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.44020 *
center.size.width,
NSMinY(center) +
0.58679 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.46195 *
center.size.width,
NSMinY(center) +
0.58102 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.43890 *
center.size.width,
NSMinY(center) +
0.58437 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.45094 *
center.size.width,
NSMinY(center) +
0.58490 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.46219 * center.size.width,
NSMinY(center) +
0.58094 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.49448 *
center.size.width,
NSMinY(center) +
0.54921 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.47719 *
center.size.width,
NSMinY(center) +
0.57578 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.48905 *
center.size.width,
NSMinY(center) +
0.56412 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.48799 *
center.size.width,
NSMinY(center) +
0.50104 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.50027 *
center.size.width,
NSMinY(center) +
0.53367 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.49801 *
center.size.width,
NSMinY(center) +
0.51472 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.48819 * center.size.width,
NSMinY(center) +
0.50132 *
center.size.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.45603 *
center.size.width,
NSMinY(center) +
0.48003 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.48055 *
center.size.width,
NSMinY(center) +
0.49041 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.46906 *
center.size.width,
NSMinY(center) +
0.48280 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.44359 *
center.size.width,
NSMinY(center) +
0.47857 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.45180 *
center.size.width,
NSMinY(center) +
0.47927 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.44769 *
center.size.width,
NSMinY(center) +
0.47895 *
center.size
.height)];
[bezier3Path
curveToPoint:NSMakePoint(
NSMinX(center) +
0.43794 *
center.size.width,
NSMinY(center) +
0.43581 *
center.size.height)
controlPoint1:NSMakePoint(
NSMinX(center) +
0.43705 *
center.size.width,
NSMinY(center) +
0.46540 *
center.size.height)
controlPoint2:NSMakePoint(
NSMinX(center) +
0.43465 *
center.size.width,
NSMinY(center) +
0.45011 *
center.size
.height)];
[bezier3Path
lineToPoint:NSMakePoint(
NSMinX(center) +
0.43774 * center.size.width,
NSMinY(center) +
0.43569 *
center.size.height)];
[bezier3Path closePath];
[fillColor6 setFill];
[bezier3Path fill];
}
if (showText) {
//// MirroredText
{
[NSGraphicsContext saveGraphicsState];
CGContextTranslateCTM(
context,
NSMinX(frame) + 0.96057 * frame.size.width,
NSMinY(frame) + 0.42824 * frame.size.height);
CGContextScaleCTM(context, -1, 1);
//// Label Drawing
NSRect labelRect =
NSMakeRect(-0.15, -30.85, 264.59, 40);
NSMutableParagraphStyle *labelStyle =
[[NSMutableParagraphStyle alloc] init];
labelStyle.alignment = NSTextAlignmentLeft;
NSDictionary *labelFontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: labelStyle
};
[@"OBS Virtual Cam "
drawInRect:NSOffsetRect(labelRect, 0, 0)
withAttributes:labelFontAttributes];
//// Label 2 Drawing
NSRect label2Rect = NSMakeRect(-0.15, 7.75, 264.68, 40);
NSMutableParagraphStyle *label2Style =
[[NSMutableParagraphStyle alloc] init];
label2Style.alignment = NSTextAlignmentLeft;
NSDictionary *label2FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label2Style
};
[@"is inactive."
drawInRect:NSOffsetRect(label2Rect, 0, 0)
withAttributes:label2FontAttributes];
//// Label 3 Drawing
NSRect label3Rect =
NSMakeRect(-0.15, 84.95, 245.51, 39);
NSMutableParagraphStyle *label3Style =
[[NSMutableParagraphStyle alloc] init];
label3Style.alignment = NSTextAlignmentLeft;
NSDictionary *label3FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label3Style
};
[@"Choose Tools > "
drawInRect:NSOffsetRect(label3Rect, 0, 0)
withAttributes:label3FontAttributes];
//// Label 4 Drawing
NSRect label4Rect =
NSMakeRect(-0.15, 123.55, 269.53, 39);
NSMutableParagraphStyle *label4Style =
[[NSMutableParagraphStyle alloc] init];
label4Style.alignment = NSTextAlignmentLeft;
NSDictionary *label4FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label4Style
};
[@"Start Virtual "
drawInRect:NSOffsetRect(label4Rect, 0, 0)
withAttributes:label4FontAttributes];
//// Label 5 Drawing
NSRect label5Rect =
NSMakeRect(-0.15, 162.15, 126.45, 39);
NSMutableParagraphStyle *label5Style =
[[NSMutableParagraphStyle alloc] init];
label5Style.alignment = NSTextAlignmentLeft;
NSDictionary *label5FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label5Style
};
[@"Camera." drawInRect:NSOffsetRect(label5Rect, 0, 0)
withAttributes:label5FontAttributes];
//// Label 6 Drawing
NSRect label6Rect =
NSMakeRect(-0.15, -152.38, 296.53, 81);
NSMutableParagraphStyle *label6Style =
[[NSMutableParagraphStyle alloc] init];
label6Style.alignment = NSTextAlignmentLeft;
NSDictionary *label6FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:66],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label6Style
};
[@"Mirrored" drawInRect:NSOffsetRect(label6Rect, 0, 0)
withAttributes:label6FontAttributes];
[NSGraphicsContext restoreGraphicsState];
}
//// RegularText
{
//// Label 7 Drawing
NSRect label7Rect = NSMakeRect(
NSMinX(regularText) + 4.7,
NSMinY(regularText) + 121.53, 264.59, 40);
NSMutableParagraphStyle *label7Style =
[[NSMutableParagraphStyle alloc] init];
label7Style.alignment = NSTextAlignmentLeft;
NSDictionary *label7FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label7Style
};
[@"OBS Virtual Cam "
drawInRect:NSOffsetRect(label7Rect, 0, 0)
withAttributes:label7FontAttributes];
//// Label 8 Drawing
NSRect label8Rect = NSMakeRect(
NSMinX(regularText) + 4.7,
NSMinY(regularText) + 160.13, 269.46, 39);
NSMutableParagraphStyle *label8Style =
[[NSMutableParagraphStyle alloc] init];
label8Style.alignment = NSTextAlignmentLeft;
NSDictionary *label8FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label8Style
};
[@"is inactive."
drawInRect:NSOffsetRect(label8Rect, 0, 0)
withAttributes:label8FontAttributes];
//// Label 9 Drawing
NSRect label9Rect = NSMakeRect(
NSMinX(regularText) + 4.7,
NSMinY(regularText) + 236.33, 245.51, 39);
NSMutableParagraphStyle *label9Style =
[[NSMutableParagraphStyle alloc] init];
label9Style.alignment = NSTextAlignmentLeft;
NSDictionary *label9FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label9Style
};
[@"Choose Tools > "
drawInRect:NSOffsetRect(label9Rect, 0, 0)
withAttributes:label9FontAttributes];
//// Label 10 Drawing
NSRect label10Rect = NSMakeRect(
NSMinX(regularText) + 4.7,
NSMinY(regularText) + 274.93, 269.53, 39);
NSMutableParagraphStyle *label10Style =
[[NSMutableParagraphStyle alloc] init];
label10Style.alignment = NSTextAlignmentLeft;
NSDictionary *label10FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label10Style
};
[@"Start Virtual "
drawInRect:NSOffsetRect(label10Rect, 0, 0)
withAttributes:label10FontAttributes];
//// Label 11 Drawing
NSRect label11Rect = NSMakeRect(
NSMinX(regularText) + 4.7,
NSMinY(regularText) + 313.53, 126.45, 39);
NSMutableParagraphStyle *label11Style =
[[NSMutableParagraphStyle alloc] init];
label11Style.alignment = NSTextAlignmentLeft;
NSDictionary *label11FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:32],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label11Style
};
[@"Camera." drawInRect:NSOffsetRect(label11Rect, 0, 0)
withAttributes:label11FontAttributes];
//// Label 12 Drawing
NSRect label12Rect = NSMakeRect(NSMinX(regularText),
NSMinY(regularText),
248.31, 81);
NSMutableParagraphStyle *label12Style =
[[NSMutableParagraphStyle alloc] init];
label12Style.alignment = NSTextAlignmentLeft;
NSDictionary *label12FontAttributes = @{
NSFontAttributeName:
[NSFont fontWithName:@"Helvetica-Bold"
size:66],
NSForegroundColorAttributeName: textForeground,
NSParagraphStyleAttributeName: label12Style
};
[@"Regular" drawInRect:NSOffsetRect(label12Rect, 0, 0)
withAttributes:label12FontAttributes];
}
}
//// RGB
{
//// Blue Drawing
NSBezierPath *bluePath = [NSBezierPath
bezierPathWithRect:
NSMakeRect(
NSMinX(rGB) +
floor(rGB.size.width * 0.67475 -
0.34) +
0.84,
NSMinY(rGB) + floor(rGB.size.height *
0.00000 +
0.5),
floor(rGB.size.width * 1.00000 + 0.24) -
floor(rGB.size.width * 0.67475 -
0.34) -
0.58,
floor(rGB.size.height * 1.00000 - 0.25) -
floor(rGB.size.height * 0.00000 +
0.5) +
0.75)];
[fillColor8 setFill];
[bluePath fill];
//// Green Drawing
NSBezierPath *greenPath = [NSBezierPath
bezierPathWithRect:
NSMakeRect(
NSMinX(rGB) +
floor(rGB.size.width * 0.32525 +
0.08) +
0.42,
NSMinY(rGB) + floor(rGB.size.height *
0.00000 +
0.5),
floor(rGB.size.width * 0.67475 - 0.34) -
floor(rGB.size.width * 0.32525 +
0.08) +
0.42,
floor(rGB.size.height * 1.00000 - 0.25) -
floor(rGB.size.height * 0.00000 +
0.5) +
0.75)];
[fillColor9 setFill];
[greenPath fill];
//// Red Drawing
NSBezierPath *redPath = [NSBezierPath
bezierPathWithRect:
NSMakeRect(
NSMinX(rGB) +
floor(rGB.size.width * 0.00000 +
0.5),
NSMinY(rGB) + floor(rGB.size.height *
0.00000 +
0.5),
floor(rGB.size.width * 0.32525 + 0.08) -
floor(rGB.size.width * 0.00000 +
0.5) +
0.42,
floor(rGB.size.height * 1.00000 - 0.25) -
floor(rGB.size.height * 0.00000 +
0.5) +
0.75)];
[fillColor10 setFill];
[redPath fill];
}
//// TopRight
{
//// Bezier 7 Drawing
NSBezierPath *bezier7Path = [NSBezierPath bezierPath];
[bezier7Path moveToPoint:NSMakePoint(NSMinX(topRight) + 31.28,
NSMinY(topRight) + 54.38)];
[bezier7Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 23.82,
NSMinY(topRight) + 61.91)
controlPoint1:NSMakePoint(NSMinX(topRight) + 26.23,
NSMinY(topRight) + 55.91)
controlPoint2:NSMakePoint(NSMinX(topRight) + 25.34,
NSMinY(topRight) + 56.81)];
[bezier7Path lineToPoint:NSMakePoint(NSMinX(topRight),
NSMinY(topRight) + 61.91)];
[bezier7Path lineToPoint:NSMakePoint(NSMinX(topRight) + 30.91,
NSMinY(topRight))];
[bezier7Path lineToPoint:NSMakePoint(NSMinX(topRight) + 31.28,
NSMinY(topRight) + 0.08)];
[bezier7Path lineToPoint:NSMakePoint(NSMinX(topRight) + 31.28,
NSMinY(topRight) + 54.38)];
[bezier7Path closePath];
[fillColor7 setFill];
[bezier7Path fill];
//// Bezier 8 Drawing
NSBezierPath *bezier8Path = [NSBezierPath bezierPath];
[bezier8Path moveToPoint:NSMakePoint(NSMinX(topRight) + 93.42,
NSMinY(topRight) + 62.55)];
[bezier8Path lineToPoint:NSMakePoint(NSMinX(topRight) + 31.61,
NSMinY(topRight) + 93.52)];
[bezier8Path lineToPoint:NSMakePoint(NSMinX(topRight) + 31.61,
NSMinY(topRight) + 69.52)];
[bezier8Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 38.98,
NSMinY(topRight) + 62.1)
controlPoint1:NSMakePoint(NSMinX(topRight) + 35.92,
NSMinY(topRight) + 68.97)
controlPoint2:NSMakePoint(NSMinX(topRight) + 38.42,
NSMinY(topRight) + 66.47)];
[bezier8Path lineToPoint:NSMakePoint(NSMinX(topRight) + 93.28,
NSMinY(topRight) + 62.1)];
[bezier8Path lineToPoint:NSMakePoint(NSMinX(topRight) + 93.42,
NSMinY(topRight) + 62.55)];
[bezier8Path closePath];
[fillColor7 setFill];
[bezier8Path fill];
//// Bezier 9 Drawing
NSBezierPath *bezier9Path = [NSBezierPath bezierPath];
[bezier9Path moveToPoint:NSMakePoint(NSMinX(topRight) + 31.54,
NSMinY(topRight) + 65.21)];
[bezier9Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 28.38,
NSMinY(topRight) + 62.07)
controlPoint1:NSMakePoint(NSMinX(topRight) + 29.66,
NSMinY(topRight) + 64.99)
controlPoint2:NSMakePoint(NSMinX(topRight) + 28.39,
NSMinY(topRight) + 64.01)];
[bezier9Path lineToPoint:NSMakePoint(NSMinX(topRight) + 28.38,
NSMinY(topRight) + 62.05)];
[bezier9Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 31.52,
NSMinY(topRight) + 59)
controlPoint1:NSMakePoint(NSMinX(topRight) + 28.41,
NSMinY(topRight) + 60.34)
controlPoint2:NSMakePoint(NSMinX(topRight) + 29.82,
NSMinY(topRight) + 58.97)];
[bezier9Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 34.56,
NSMinY(topRight) + 61.94)
controlPoint1:NSMakePoint(NSMinX(topRight) + 33.15,
NSMinY(topRight) + 59.03)
controlPoint2:NSMakePoint(NSMinX(topRight) + 34.47,
NSMinY(topRight) + 60.31)];
[bezier9Path
curveToPoint:NSMakePoint(NSMinX(topRight) + 31.54,
NSMinY(topRight) + 65.21)
controlPoint1:NSMakePoint(NSMinX(topRight) + 34.65,
NSMinY(topRight) + 63.82)
controlPoint2:NSMakePoint(NSMinX(topRight) + 33.42,
NSMinY(topRight) + 64.86)];
[bezier9Path closePath];
[fillColor7 setFill];
[bezier9Path fill];
}
//// BottomLeft
{
//// Bezier 4 Drawing
NSBezierPath *bezier4Path = [NSBezierPath bezierPath];
[bezier4Path
moveToPoint:NSMakePoint(NSMinX(bottomLeft) + 62.14,
NSMinY(bottomLeft) + 39.13)];
[bezier4Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 69.6,
NSMinY(bottomLeft) + 31.6)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 67.18,
NSMinY(bottomLeft) + 37.6)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 68.08,
NSMinY(bottomLeft) + 36.71)];
[bezier4Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 93.42,
NSMinY(bottomLeft) + 31.6)];
[bezier4Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 62.51,
NSMinY(bottomLeft) + 93.51)];
[bezier4Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 62.14,
NSMinY(bottomLeft) + 93.43)];
[bezier4Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 62.14,
NSMinY(bottomLeft) + 39.13)];
[bezier4Path closePath];
[fillColor7 setFill];
[bezier4Path fill];
//// Bezier 5 Drawing
NSBezierPath *bezier5Path = [NSBezierPath bezierPath];
[bezier5Path
moveToPoint:NSMakePoint(NSMinX(bottomLeft),
NSMinY(bottomLeft) + 30.96)];
[bezier5Path lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 61.81,
NSMinY(bottomLeft))];
[bezier5Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 61.81,
NSMinY(bottomLeft) + 24.02)];
[bezier5Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 54.44,
NSMinY(bottomLeft) + 31.44)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 57.49,
NSMinY(bottomLeft) + 24.57)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 54.99,
NSMinY(bottomLeft) + 27.07)];
[bezier5Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 0.14,
NSMinY(bottomLeft) + 31.44)];
[bezier5Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft),
NSMinY(bottomLeft) + 30.96)];
[bezier5Path closePath];
[fillColor7 setFill];
[bezier5Path fill];
//// Bezier 6 Drawing
NSBezierPath *bezier6Path = [NSBezierPath bezierPath];
[bezier6Path
moveToPoint:NSMakePoint(NSMinX(bottomLeft) + 61.88,
NSMinY(bottomLeft) + 28.3)];
[bezier6Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 65.04,
NSMinY(bottomLeft) + 31.45)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 63.75,
NSMinY(bottomLeft) + 28.53)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 65.03,
NSMinY(bottomLeft) + 29.51)];
[bezier6Path
lineToPoint:NSMakePoint(NSMinX(bottomLeft) + 65.04,
NSMinY(bottomLeft) + 31.47)];
[bezier6Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 61.89,
NSMinY(bottomLeft) + 34.52)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 65.01,
NSMinY(bottomLeft) + 33.18)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 63.6,
NSMinY(bottomLeft) + 34.55)];
[bezier6Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 58.86,
NSMinY(bottomLeft) + 31.58)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 60.27,
NSMinY(bottomLeft) + 34.49)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 58.95,
NSMinY(bottomLeft) + 33.21)];
[bezier6Path
curveToPoint:NSMakePoint(NSMinX(bottomLeft) + 61.88,
NSMinY(bottomLeft) + 28.3)
controlPoint1:NSMakePoint(NSMinX(bottomLeft) + 58.77,
NSMinY(bottomLeft) + 29.7)
controlPoint2:NSMakePoint(NSMinX(bottomLeft) + 60,
NSMinY(bottomLeft) + 28.66)];
[bezier6Path closePath];
[fillColor7 setFill];
[bezier6Path fill];
}
//// Text Drawing
NSRect textRect = NSMakeRect(
NSMinX(frame) + floor(frame.size.width * 0.42422 + 0.5),
NSMinY(frame) + frame.size.height - 20,
floor(frame.size.width * 0.57656 + 0.5) -
floor(frame.size.width * 0.42422 + 0.5),
21);
NSMutableParagraphStyle *textStyle =
[[NSMutableParagraphStyle alloc] init];
textStyle.alignment = NSTextAlignmentCenter;
NSDictionary *textFontAttributes = @{
NSFontAttributeName: [NSFont systemFontOfSize:14],
NSForegroundColorAttributeName: fillColor6,
NSParagraphStyleAttributeName: textStyle
};
CGFloat textTextHeight =
[versionText
boundingRectWithSize:textRect.size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:textFontAttributes]
.size.height;
NSRect textTextRect = NSMakeRect(
NSMinX(textRect),
NSMinY(textRect) + (textRect.size.height - textTextHeight) / 2,
textRect.size.width, textTextHeight);
[NSGraphicsContext saveGraphicsState];
NSRectClip(textRect);
[versionText drawInRect:NSOffsetRect(textTextRect, 0, -0.5)
withAttributes:textFontAttributes];
[NSGraphicsContext restoreGraphicsState];
}
void DrawDialWithFrame(NSRect frame, CGFloat rotation)
{
//// General Declarations
CGContextRef context = NSGraphicsContext.currentContext.CGContext;
//// Oval 3 Drawing
NSBezierPath *oval3Path = [NSBezierPath
bezierPathWithOvalInRect:NSMakeRect(
NSMinX(frame) +
frame.size.width - 133,
NSMinY(frame) + 30, 98, 98)];
[NSColor.grayColor setFill];
[oval3Path fill];
//// Bezier 10 Drawing
[NSGraphicsContext saveGraphicsState];
CGContextTranslateCTM(context, NSMaxX(frame) - 83.5,
NSMinY(frame) + 79.5);
CGContextRotateCTM(context, rotation * M_PI / 180);
NSBezierPath *bezier10Path = [NSBezierPath bezierPath];
[bezier10Path moveToPoint:NSMakePoint(-0, -0)];
[bezier10Path lineToPoint:NSMakePoint(-0, 48)];
[NSColor.blackColor setStroke];
bezier10Path.lineWidth = 2;
[bezier10Path stroke];
[NSGraphicsContext restoreGraphicsState];
}
NSImage *ImageOfTestCardWithSize(NSSize imageSize)
{
return [NSImage imageWithSize:imageSize
flipped:YES
drawingHandler:^(__unused NSRect dstRect) {
DrawTestCardWithFrame(
nil, NSMakeRect(0, 0, imageSize.width,
imageSize.height));
return YES;
}];
}