Home | History | Annotate | Download | only in native
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/at_exit.h"
      6 #include "base/command_line.h"
      7 #include "base/message_loop/message_loop.h"
      8 #if defined(OS_MACOSX)
      9 #include "base/mac/scoped_nsautorelease_pool.h"
     10 #endif
     11 #if defined(OS_WIN)
     12 #include "base/strings/utf_string_conversions.h"
     13 #endif
     14 #include "ui/gl/gl_surface.h"
     15 
     16 extern "C" {
     17 #if defined(GLES2_CONFORM_SUPPORT_ONLY)
     18 #include "gpu/gles2_conform_support/gtf/gtf_stubs.h"
     19 #else
     20 #include "third_party/gles2_conform/GTF_ES/glsl/GTF/Source/GTFMain.h"
     21 #endif
     22 }
     23 
     24 int main(int argc, char *argv[]) {
     25   base::AtExitManager at_exit;
     26   CommandLine::Init(argc, argv);
     27   base::MessageLoopForUI message_loop;
     28 
     29   CommandLine::StringVector args =
     30     CommandLine::ForCurrentProcess()->GetArgs();
     31 
     32 #if defined(OS_MACOSX)
     33   base::mac::ScopedNSAutoreleasePool pool;
     34 #endif
     35 
     36   scoped_ptr<const char*[]> argsArray(new const char*[args.size()+1]);
     37   argsArray[0] = argv[0];
     38 
     39 #if defined(OS_WIN)
     40   std::vector<std::string> argsNonWide(args.size());
     41   for (size_t index = 0; index < args.size(); ++index) {
     42     argsNonWide[index] = base::UTF16ToASCII(args[index]);
     43     argsArray[index+1] = argsNonWide[index].c_str();
     44   }
     45 #else
     46   for (size_t index = 0; index < args.size(); ++index) {
     47     argsArray[index+1] = args[index].c_str();
     48   }
     49 #endif
     50 
     51   GTFMain(static_cast<int>(args.size()+1),
     52     const_cast<char**>(argsArray.get()));
     53 
     54   return 0;
     55 }
     56 
     57