OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 * | 7 * |
8 */ | 8 */ |
9 #include <v8.h> | 9 #include <v8.h> |
10 | 10 |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 | 149 |
150 SkOSWindow* create_sk_window(void* hwnd, int argc, char** argv) { | 150 SkOSWindow* create_sk_window(void* hwnd, int argc, char** argv) { |
151 printf("Started\n"); | 151 printf("Started\n"); |
152 | 152 |
153 SkCommandLineFlags::Parse(argc, argv); | 153 SkCommandLineFlags::Parse(argc, argv); |
154 | 154 |
155 // Get the default Isolate created at startup. | 155 // Get the default Isolate created at startup. |
156 Isolate* isolate = Isolate::GetCurrent(); | 156 Isolate* isolate = Isolate::GetCurrent(); |
157 Global* global = new Global(isolate); | 157 Global* global = new Global(isolate); |
158 | 158 |
| 159 |
| 160 // Set up things to look like a browser by creating |
| 161 // a console object that invokes our print function. |
| 162 const char* startupScript = |
| 163 "function Console() {}; \n" |
| 164 "Console.prototype.log = function() { \n" |
| 165 " var args = Array.prototype.slice.call(arguments).join(' '); \n" |
| 166 " print(args); \n" |
| 167 "}; \n" |
| 168 "console = new Console(); \n"; |
| 169 |
| 170 if (!global->parseScript(startupScript)) { |
| 171 printf("Failed to parse startup script: %s.\n", FLAGS_infile[0]); |
| 172 exit(1); |
| 173 } |
| 174 |
159 const char* script = | 175 const char* script = |
160 "function onDraw(canvas) { \n" | 176 "function onDraw(canvas) { \n" |
161 " canvas.fillStyle = '#00FF00'; \n" | 177 " canvas.fillStyle = '#00FF00'; \n" |
162 " canvas.fillRect(20, 20, 100, 100); \n" | 178 " canvas.fillRect(20, 20, 100, 100); \n" |
163 " canvas.inval(); \n" | 179 " canvas.inval(); \n" |
164 "} \n"; | 180 "} \n"; |
165 | 181 |
166 SkAutoTUnref<SkData> data; | 182 SkAutoTUnref<SkData> data; |
167 if (FLAGS_infile.count()) { | 183 if (FLAGS_infile.count()) { |
168 data.reset(SkData::NewFromFileName(FLAGS_infile[0])); | 184 data.reset(SkData::NewFromFileName(FLAGS_infile[0])); |
169 script = static_cast<const char*>(data->data()); | 185 script = static_cast<const char*>(data->data()); |
170 } | 186 } |
171 if (NULL == script) { | 187 if (NULL == script) { |
172 printf("Could not load file: %s.\n", FLAGS_infile[0]); | 188 printf("Could not load file: %s.\n", FLAGS_infile[0]); |
173 exit(1); | 189 exit(1); |
174 } | 190 } |
175 Path::AddToGlobal(global); | 191 Path::AddToGlobal(global); |
176 | 192 |
177 if (!global->parseScript(script)) { | 193 if (!global->parseScript(script)) { |
178 printf("Failed to parse file: %s.\n", FLAGS_infile[0]); | 194 printf("Failed to parse file: %s.\n", FLAGS_infile[0]); |
179 exit(1); | 195 exit(1); |
180 } | 196 } |
181 | 197 |
| 198 |
182 JsContext* jsContext = new JsContext(global); | 199 JsContext* jsContext = new JsContext(global); |
183 | 200 |
184 if (!jsContext->initialize()) { | 201 if (!jsContext->initialize()) { |
185 printf("Failed to initialize.\n"); | 202 printf("Failed to initialize.\n"); |
186 exit(1); | 203 exit(1); |
187 } | 204 } |
188 SkV8ExampleWindow* win = new SkV8ExampleWindow(hwnd, jsContext); | 205 SkV8ExampleWindow* win = new SkV8ExampleWindow(hwnd, jsContext); |
189 global->setWindow(win); | 206 global->setWindow(win); |
190 | 207 |
191 return win; | 208 return win; |
192 } | 209 } |
OLD | NEW |