ec3ed6a5eb
I have manually examined all of these diffs and restored a few files that seem to require manual adjustment. The following files still need to be modified manually, in a separate CL: android_sample/SampleApp/AndroidManifest.xml android_sample/SampleApp/res/layout/layout.xml android_sample/SampleApp/res/menu/sample.xml android_sample/SampleApp/res/values/strings.xml android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java experimental/CiCarbonSampleMain.c experimental/CocoaDebugger/main.m experimental/FileReaderApp/main.m experimental/SimpleCocoaApp/main.m experimental/iOSSampleApp/Shared/SkAlertPrompt.h experimental/iOSSampleApp/Shared/SkAlertPrompt.m experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig gpu/src/android/GrGLDefaultInterface_android.cpp gyp/common.gypi gyp_skia include/ports/SkHarfBuzzFont.h include/views/SkOSWindow_wxwidgets.h make.bat make.py src/opts/memset.arm.S src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp src/ports/SkXMLParser_empty.cpp src/utils/ios/SkImageDecoder_iOS.mm src/utils/ios/SkOSFile_iOS.mm src/utils/ios/SkStream_NSData.mm tests/FillPathTest.cpp Review URL: http://codereview.appspot.com/4816058 git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
|
|
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
#ifndef SkLineClipper_DEFINED
|
|
#define SkLineClipper_DEFINED
|
|
|
|
#include "SkRect.h"
|
|
#include "SkPoint.h"
|
|
|
|
class SkLineClipper {
|
|
public:
|
|
enum {
|
|
kMaxPoints = 4
|
|
};
|
|
|
|
/* Clip the line pts[0]...pts[1] against clip, ignoring segments that
|
|
lie completely above or below the clip. For portions to the left or
|
|
right, turn those into vertical line segments that are aligned to the
|
|
edge of the clip.
|
|
|
|
Return the number of line segments that result, and store the end-points
|
|
of those segments sequentially in lines as follows:
|
|
1st segment: lines[0]..lines[1]
|
|
2nd segment: lines[1]..lines[2]
|
|
3rd segment: lines[2]..lines[3]
|
|
*/
|
|
static int ClipLine(const SkPoint pts[2], const SkRect& clip,
|
|
SkPoint lines[kMaxPoints]);
|
|
|
|
/* Intersect the line segment against the rect. If there is a non-empty
|
|
resulting segment, return true and set dst[] to that segment. If not,
|
|
return false and ignore dst[].
|
|
|
|
ClipLine is specialized for scan-conversion, as it adds vertical
|
|
segments on the sides to show where the line extended beyond the
|
|
left or right sides. IntersectLine does not.
|
|
*/
|
|
static bool IntersectLine(const SkPoint src[2], const SkRect& clip,
|
|
SkPoint dst[2]);
|
|
};
|
|
|
|
#endif
|
|
|