summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--o3d/DEPS2
-rw-r--r--o3d/breakpad/win/bluescreen_detector.cc3
-rw-r--r--o3d/core/cross/canvas.cc2
-rw-r--r--o3d/core/cross/canvas.h4
-rw-r--r--o3d/core/cross/canvas_paint.cc125
-rw-r--r--o3d/core/cross/canvas_paint.h2
-rw-r--r--o3d/core/cross/canvas_shader.cc4
-rw-r--r--o3d/core/cross/canvas_shader.h4
-rw-r--r--o3d/core/cross/canvas_utils.h2
-rw-r--r--o3d/plugin/build.scons5
-rw-r--r--o3d/plugin/cross/archive_request_static_glue.cc (renamed from o3d/plugin/cross/archive_request_glue.cc)2
-rw-r--r--o3d/plugin/cross/archive_request_static_glue.h (renamed from o3d/plugin/cross/archive_request_glue.h)6
-rw-r--r--o3d/plugin/cross/np_v8_bridge.h2
-rw-r--r--o3d/plugin/idl/bounding_box.idl2
-rw-r--r--o3d/plugin/idl/texture.idl8
-rw-r--r--o3d/plugin/win/main_win.cc2
-rw-r--r--o3d/serializer/cross/serializer.cc2
-rw-r--r--o3d/serializer/cross/serializer_binary.cc16
-rw-r--r--o3d/svn_paths.scons2
19 files changed, 154 insertions, 41 deletions
diff --git a/o3d/DEPS b/o3d/DEPS
index 5515068..ef0111b 100644
--- a/o3d/DEPS
+++ b/o3d/DEPS
@@ -49,7 +49,7 @@ deps = {
"http://o3d.googlecode.com/svn/trunk/googleclient/third_party/scons@" + Var("o3d_code_rev"),
"o3d/third_party/skia":
- "http://o3d.googlecode.com/svn/trunk/googleclient/third_party/skia@" + Var("o3d_code_rev"),
+ "http://o3d.googlecode.com/svn/trunk/googleclient/third_party/skia/files@" + Var("o3d_code_rev"),
"o3d/third_party/vectormath":
"http://o3d.googlecode.com/svn/trunk/googleclient/third_party/vectormath@" + Var("o3d_code_rev"),
diff --git a/o3d/breakpad/win/bluescreen_detector.cc b/o3d/breakpad/win/bluescreen_detector.cc
index 9cdd51f..0d68fb5 100644
--- a/o3d/breakpad/win/bluescreen_detector.cc
+++ b/o3d/breakpad/win/bluescreen_detector.cc
@@ -104,7 +104,8 @@ int MarkerFileManagerInterface::DetectStrayMarkerFiles() {
// the machine was last booted
int stray_file_count = 0;
- for (int i = 0; i < marker_files.size(); ++i) {
+ for (vector<MarkerFileInfo>::size_type i = 0;
+ i < marker_files.size(); ++i) {
const MarkerFileInfo &file_info = marker_files[i];
if (time_manager_->IsMarkerFileOld(file_info)) {
diff --git a/o3d/core/cross/canvas.cc b/o3d/core/cross/canvas.cc
index d196fcc..26fabbd 100644
--- a/o3d/core/cross/canvas.cc
+++ b/o3d/core/cross/canvas.cc
@@ -39,7 +39,7 @@
#include "core/cross/client.h"
#include "core/cross/error.h"
-#include "third_party/skia/files/include/core/SkPath.h"
+#include "third_party/skia/include/core/SkPath.h"
namespace o3d {
diff --git a/o3d/core/cross/canvas.h b/o3d/core/cross/canvas.h
index 07c39f0..5c9c62e 100644
--- a/o3d/core/cross/canvas.h
+++ b/o3d/core/cross/canvas.h
@@ -41,8 +41,8 @@
#include "core/cross/param.h"
#include "core/cross/texture.h"
-#include "third_party/skia/files/include/core/SkBitmap.h"
-#include "third_party/skia/files/include/core/SkCanvas.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkCanvas.h"
namespace o3d {
diff --git a/o3d/core/cross/canvas_paint.cc b/o3d/core/cross/canvas_paint.cc
index fe56453..3e37877 100644
--- a/o3d/core/cross/canvas_paint.cc
+++ b/o3d/core/cross/canvas_paint.cc
@@ -37,14 +37,125 @@
#include "core/cross/canvas_utils.h"
#include "core/cross/client.h"
-#include "third_party/skia/files/include/core/SkDrawLooper.h"
-#include "third_party/skia/files/include/core/SkPaint.h"
-#include "third_party/skia/files/include/core/SkTypeface.h"
-#include "third_party/skia/files/include/effects/SkBlurDrawLooper.h"
-#include "third_party/skia/files/include/effects/SkStrokeDrawLooper.h"
+#include "third_party/skia/include/core/SkCanvas.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "third_party/skia/include/core/SkDrawLooper.h"
+#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/include/core/SkTypeface.h"
+#include "third_party/skia/include/effects/SkBlurDrawLooper.h"
namespace o3d {
+namespace {
+
+/** StrokeDrawLooper This class draws an outline of the
+* object, and then draws the original object in its original
+* position.
+*/
+class StrokeDrawLooper : public SkDrawLooper {
+ public:
+ StrokeDrawLooper(SkScalar radius, SkColor color);
+ virtual ~StrokeDrawLooper() {}
+ virtual void init(SkCanvas* canvas, SkPaint* paint);
+ virtual bool next();
+ virtual void restore();
+
+ protected:
+ virtual Factory getFactory() { return CreateProc; }
+ void flatten(SkFlattenableWriteBuffer& buffer);
+ StrokeDrawLooper(SkFlattenableReadBuffer& buffer);
+
+ private:
+ SkCanvas* fCanvas;
+ SkPaint* fPaint;
+
+ // These are to save the state attributes that we want to change so
+ // we can restore them after we draw the stroke.
+ SkPaint::Style fSavedStyle;
+ SkScalar fSavedStrokeWidth;
+ SkColor fSavedColor;
+
+ // These are the attribues of the stroke.
+ SkScalar fRadius;
+ SkColor fColor;
+
+ // Possible machine states for this object.
+ enum State {
+ kBeforeEdge,
+ kAfterEdge,
+ kDone,
+ };
+ State fState;
+
+ // Factory method for ressurecting a StrokeDrawLooper.
+ static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
+ return SkNEW_ARGS(StrokeDrawLooper, (buffer)); }
+
+ typedef SkDrawLooper INHERITED;
+};
+
+StrokeDrawLooper::StrokeDrawLooper(SkScalar radius, SkColor color)
+ : fColor(color), fRadius(radius) {
+}
+
+void StrokeDrawLooper::init(SkCanvas* canvas, SkPaint* paint) {
+ fState = kBeforeEdge;
+ fCanvas = canvas;
+ fPaint = paint;
+}
+
+bool StrokeDrawLooper::next() {
+ switch (fState) {
+ case kBeforeEdge:
+ // Save the original values.
+ fSavedStyle = fPaint->getStyle();
+ fSavedStrokeWidth = fPaint->getStrokeWidth();
+ fSavedColor = fPaint->getColor();
+
+ // Override with stroke values.
+ fPaint->setColor(fColor);
+ fPaint->setStrokeWidth(fRadius);
+ fPaint->setStyle(SkPaint::kStroke_Style);
+
+ // Change states.
+ fState = kAfterEdge;
+ return true;
+ case kAfterEdge:
+ // Restore original values.
+ fPaint->setColor(fSavedColor);
+ fPaint->setStrokeWidth(fSavedStrokeWidth);
+ fPaint->setStyle(fSavedStyle);
+
+ // Now we're done.
+ fState = kDone;
+ return true;
+ default:
+ SkASSERT(kDone == fState);
+ return false;
+ }
+}
+
+void StrokeDrawLooper::restore() {
+ if (kAfterEdge == fState) {
+ fPaint->setColor(fSavedColor);
+ fPaint->setStrokeWidth(fSavedStrokeWidth);
+ fPaint->setStyle(fSavedStyle);
+ fState = kDone;
+ }
+}
+
+void StrokeDrawLooper::flatten(SkFlattenableWriteBuffer& buffer) {
+ buffer.writeScalar(fRadius);
+ buffer.write32(fColor);
+}
+
+StrokeDrawLooper::StrokeDrawLooper(SkFlattenableReadBuffer& buffer) {
+ fRadius = buffer.readScalar();
+ fColor = buffer.readU32();
+}
+
+} // end anonymous namespace
+
O3D_DEFN_CLASS(CanvasPaint, ParamObject);
static SkPaint::Align ToSKAlign(CanvasPaint::TextAlign align) {
@@ -88,8 +199,8 @@ void CanvasPaint::UpdateNativePaint() {
// Note that shadow and ouline cannot both be active at the same time.
if (outline_radius_ != 0.0) {
- SkDrawLooper* l = new SkStrokeDrawLooper(SkFloatToScalar(outline_radius_),
- Float4ToSkColor(outline_color_));
+ SkDrawLooper* l = new StrokeDrawLooper(SkFloatToScalar(outline_radius_),
+ Float4ToSkColor(outline_color_));
sk_paint_.setLooper(l);
l->unref();
} else if (shadow_radius_ != 0.0) {
diff --git a/o3d/core/cross/canvas_paint.h b/o3d/core/cross/canvas_paint.h
index ac76a70..aaec72a 100644
--- a/o3d/core/cross/canvas_paint.h
+++ b/o3d/core/cross/canvas_paint.h
@@ -39,7 +39,7 @@
#include "core/cross/param.h"
#include "core/cross/canvas_shader.h"
-#include "third_party/skia/files/include/core/SkPaint.h"
+#include "third_party/skia/include/core/SkPaint.h"
namespace o3d {
diff --git a/o3d/core/cross/canvas_shader.cc b/o3d/core/cross/canvas_shader.cc
index 9a5cb93..aeff7df 100644
--- a/o3d/core/cross/canvas_shader.cc
+++ b/o3d/core/cross/canvas_shader.cc
@@ -38,8 +38,8 @@
#include "core/cross/canvas_utils.h"
#include "core/cross/error.h"
-#include "third_party/skia/files/include/core/SkShader.h"
-#include "third_party/skia/files/include/effects/SkGradientShader.h"
+#include "third_party/skia/include/core/SkShader.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
namespace o3d {
diff --git a/o3d/core/cross/canvas_shader.h b/o3d/core/cross/canvas_shader.h
index ac86926..cf9fd0b 100644
--- a/o3d/core/cross/canvas_shader.h
+++ b/o3d/core/cross/canvas_shader.h
@@ -40,8 +40,8 @@
#include "core/cross/param_object.h"
#include "core/cross/param.h"
-#include "third_party/skia/files/include/core/SkColor.h"
-#include "third_party/skia/files/include/core/SkPoint.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "third_party/skia/include/core/SkPoint.h"
class SkShader;
diff --git a/o3d/core/cross/canvas_utils.h b/o3d/core/cross/canvas_utils.h
index 36e400e..87ce013 100644
--- a/o3d/core/cross/canvas_utils.h
+++ b/o3d/core/cross/canvas_utils.h
@@ -34,7 +34,7 @@
#define O3D_CORE_CROSS_CANVAS_UTILS_H_
#include "core/cross/float_n.h"
-#include "third_party/skia/files/include/core/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
// Helper function to convert from Float4 to an SkColor
static SkColor Float4ToSkColor(const o3d::Float4& color) {
diff --git a/o3d/plugin/build.scons b/o3d/plugin/build.scons
index e6c344a..666cd7a 100644
--- a/o3d/plugin/build.scons
+++ b/o3d/plugin/build.scons
@@ -82,7 +82,8 @@ env.Append(
'$NIXYSA_STATIC_GLUE',
'$SCONSTRUCT_DIR/plugin/win', # for RES resource.h
'$WTL_71_DIR/include',
- ],
+ '$THIRD_PARTY',
+ ],
LIBPATH = [
'$NACL_LIB_DIR',
],
@@ -180,7 +181,7 @@ AUTOGEN_CC_FILES = [f for f in AUTOGEN_OUTPUT if f.suffix == '.cc']
inputs = AUTOGEN_CC_FILES + [
'cross/async_loading.cc',
- 'cross/archive_request_glue.cc',
+ 'cross/archive_request_static_glue.cc',
'cross/blacklist.cc',
'cross/o3d_glue.cc',
'cross/np_v8_bridge.cc',
diff --git a/o3d/plugin/cross/archive_request_glue.cc b/o3d/plugin/cross/archive_request_static_glue.cc
index 704aaa7..c11fd1c 100644
--- a/o3d/plugin/cross/archive_request_glue.cc
+++ b/o3d/plugin/cross/archive_request_static_glue.cc
@@ -30,7 +30,7 @@
*/
-#include "plugin/cross/archive_request_glue.h"
+#include "plugin/cross/archive_request_static_glue.h"
#include "base/basictypes.h"
#include "plugin/cross/stream_manager.h"
diff --git a/o3d/plugin/cross/archive_request_glue.h b/o3d/plugin/cross/archive_request_static_glue.h
index f9f1384..199de08 100644
--- a/o3d/plugin/cross/archive_request_glue.h
+++ b/o3d/plugin/cross/archive_request_static_glue.h
@@ -32,8 +32,8 @@
// This file declares the glue for FileRequest actions.
-#ifndef O3D_PLUGIN_ARCHIVE_REQUEST_GLUE_H_
-#define O3D_PLUGIN_ARCHIVE_REQUEST_GLUE_H_
+#ifndef O3D_PLUGIN_ARCHIVE_REQUEST_STATIC_GLUE_H_
+#define O3D_PLUGIN_ARCHIVE_REQUEST_STATIC_GLUE_H_
#include "core/cross/callback.h"
#include "core/cross/types.h"
@@ -63,4 +63,4 @@ void userglue_method_send(void *plugin_data,
} // namespace namespace_o3d
} // namespace glue
-#endif // O3D_PLUGIN_ARCHIVE_REQUEST_GLUE_H_
+#endif // O3D_PLUGIN_ARCHIVE_REQUEST_STATIC_GLUE_H_
diff --git a/o3d/plugin/cross/np_v8_bridge.h b/o3d/plugin/cross/np_v8_bridge.h
index 779a5a3..150a3c2 100644
--- a/o3d/plugin/cross/np_v8_bridge.h
+++ b/o3d/plugin/cross/np_v8_bridge.h
@@ -62,7 +62,7 @@
#undef Value
#endif
-#include "third_party/v8/include/v8.h"
+#include "v8/include/v8.h"
namespace o3d {
diff --git a/o3d/plugin/idl/bounding_box.idl b/o3d/plugin/idl/bounding_box.idl
index b8ac932..1904f59 100644
--- a/o3d/plugin/idl/bounding_box.idl
+++ b/o3d/plugin/idl/bounding_box.idl
@@ -143,7 +143,7 @@ class BoundingBox {
O3D_ERROR(service_locator)
<< "BoundingBox: expected 2 values, got " << values.size();
} else {
- for (int i = 0; i < values.size(); ++i) {
+ for (std::vector<float>::size_type i = 0; i < values.size(); ++i) {
if (values[i].size() != 3) {
o3d::ServiceLocator* service_locator =
static_cast<glue::_o3d::PluginObject*>(
diff --git a/o3d/plugin/idl/texture.idl b/o3d/plugin/idl/texture.idl
index cc470c0..7039a9e 100644
--- a/o3d/plugin/idl/texture.idl
+++ b/o3d/plugin/idl/texture.idl
@@ -268,7 +268,7 @@ namespace o3d {
source_x -= destination_x;
destination_x = 0;
}
- if (destination_x + copy_width > texture_width) {
+ if (destination_x + copy_width > static_cast<int>(texture_width)) {
copy_width -= destination_x + copy_width - texture_width;
}
@@ -277,7 +277,7 @@ namespace o3d {
source_y -= destination_y;
destination_y = 0;
}
- if (destination_y + copy_height > texture_height) {
+ if (destination_y + copy_height > static_cast<int>(texture_height)) {
copy_height -= destination_y + copy_height - texture_height;
}
@@ -303,7 +303,7 @@ namespace o3d {
(destination_y * texture_width + destination_x) * num_components;
while (copy_height > 0) {
for (int xx = 0; xx < copy_width; ++xx) {
- for (int element = 0; element < num_components; ++element) {
+ for (unsigned element = 0; element < num_components; ++element) {
destination[element] = Vectormath::Aos::FloatToHalf(
source[swizzle[element]]);
}
@@ -323,7 +323,7 @@ namespace o3d {
(destination_y * texture_width + destination_x) * num_components;
while (copy_height > 0) {
for (int xx = 0; xx < copy_width; ++xx) {
- for (int element = 0; element < num_components; ++element) {
+ for (unsigned element = 0; element < num_components; ++element) {
destination[element] = source[swizzle[element]];
}
destination += num_components;
diff --git a/o3d/plugin/win/main_win.cc b/o3d/plugin/win/main_win.cc
index 1f1b14d..6107067 100644
--- a/o3d/plugin/win/main_win.cc
+++ b/o3d/plugin/win/main_win.cc
@@ -442,7 +442,7 @@ static LRESULT HandleDragAndDrop(PluginObject *obj, WPARAM wParam) {
path_to_use = path.get();
#endif
- for (int i = 0; i < num_chars; ++i) {
+ for (UINT i = 0; i < num_chars; ++i) {
if (path_to_use[i] == '\\') {
path_to_use[i] = '/';
}
diff --git a/o3d/serializer/cross/serializer.cc b/o3d/serializer/cross/serializer.cc
index f9266af..066ce30 100644
--- a/o3d/serializer/cross/serializer.cc
+++ b/o3d/serializer/cross/serializer.cc
@@ -756,7 +756,7 @@ void Serializer::SerializePack(Pack* pack) {
void Serializer::SerializePackBinary(Pack* pack) {
std::vector<ObjectBase*> objects = pack->GetByClass<ObjectBase>();
- for (int i = 0; i < objects.size(); ++i) {
+ for (std::vector<ObjectBase*>::size_type i = 0; i < objects.size(); ++i) {
binary_visitor_->Accept(objects[i]);
}
}
diff --git a/o3d/serializer/cross/serializer_binary.cc b/o3d/serializer/cross/serializer_binary.cc
index 9b7f523..56793c4 100644
--- a/o3d/serializer/cross/serializer_binary.cc
+++ b/o3d/serializer/cross/serializer_binary.cc
@@ -80,7 +80,7 @@ void SerializeBuffer(const Buffer &buffer, MemoryBuffer<uint8> *output) {
stream.WriteLittleEndianInt32(static_cast<int32>(num_fields));
// Write out the specification for the fields
- for (int i = 0; i < num_fields; ++i) {
+ for (size_t i = 0; i < num_fields; ++i) {
const Field &field = *buffer.fields()[i];
// Determine the FIELDID code we need to write out
@@ -110,7 +110,7 @@ void SerializeBuffer(const Buffer &buffer, MemoryBuffer<uint8> *output) {
// Write out the data for each field
// Write out the specification for the fields
- for (int i = 0; i < num_fields; ++i) {
+ for (size_t i = 0; i < num_fields; ++i) {
const Field &field = *buffer.fields()[i];
MemoryBuffer<uint8> field_data(field.size() * num_elements);
@@ -127,7 +127,7 @@ void SerializeBuffer(const Buffer &buffer, MemoryBuffer<uint8> *output) {
field.num_components(),
num_elements);
// Write out as little endian float32
- for (int i = 0; i < nitems; ++i) {
+ for (size_t i = 0; i < nitems; ++i) {
stream.WriteLittleEndianFloat32(float_destination[i]);
}
} else if (field.IsA(UInt32Field::GetApparentClass())) {
@@ -138,7 +138,7 @@ void SerializeBuffer(const Buffer &buffer, MemoryBuffer<uint8> *output) {
field.num_components(),
num_elements);
// Write out as little endian int32
- for (int i = 0; i < nitems; ++i) {
+ for (size_t i = 0; i < nitems; ++i) {
stream.WriteLittleEndianInt32(int_destination[i]);
}
} else if (field.IsA(UByteNField::GetApparentClass())) {
@@ -186,7 +186,7 @@ void SerializeCurve(const Curve &curve, MemoryBuffer<uint8> *output) {
stream.WriteLittleEndianInt32(1);
- for (int i = 0; i < num_keys; ++i) {
+ for (size_t i = 0; i < num_keys; ++i) {
const CurveKey &key = *curve.GetKey(i);
// determine the KeyType based on the key's class
@@ -227,7 +227,7 @@ void SerializeSkin(const Skin &skin, MemoryBuffer<uint8> *output) {
// Count up total number of individual influences
size_t total_influence_count = 0;
- for (int i = 0; i < influences_array_size; ++i) {
+ for (size_t i = 0; i < influences_array_size; ++i) {
total_influence_count += influences_array[i].size();
}
@@ -248,14 +248,14 @@ void SerializeSkin(const Skin &skin, MemoryBuffer<uint8> *output) {
// write out version
stream.WriteLittleEndianInt32(1);
- for (int i = 0; i < influences_array_size; ++i) {
+ for (size_t i = 0; i < influences_array_size; ++i) {
const Skin::Influences &influences = influences_array[i];
// Write the influence count for this Influences object
size_t influence_count = influences.size();
stream.WriteLittleEndianInt32(static_cast<int32>(influence_count));
- for (int j = 0; j < influence_count; ++j) {
+ for (size_t j = 0; j < influence_count; ++j) {
const Skin::Influence &influence = influences[j];
stream.WriteLittleEndianInt32(influence.matrix_index);
stream.WriteLittleEndianFloat32(influence.weight);
diff --git a/o3d/svn_paths.scons b/o3d/svn_paths.scons
index ad3957c..019a618 100644
--- a/o3d/svn_paths.scons
+++ b/o3d/svn_paths.scons
@@ -74,7 +74,7 @@ env.Replace(
SELENIUM_JAVA_DIR = '$THIRD_PARTY/java/selenium/rev2478_mod',
SELENIUM_PYTHON_DIR = '$THIRD_PARTY/py/selenium',
# TODO: pull from SVN with gclient ?
- SKIA_DIR = '$THIRD_PARTY/skia/files',
+ SKIA_DIR = '$THIRD_PARTY/skia',
# TODO: pull from SVN with gclient ?
V8_SRC_DIR = '$THIRD_PARTY/v8',
WIX_DIR = '$THIRD_PARTY/wix_2_0_4221/files',