Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
KATAOKA,Atsushi
committed
Mar 10, 2011
0 parents
commit 749b2a2
Showing
22 changed files
with
773 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
*.pbxuser | ||
*.perspective | ||
*.perspectivev3 | ||
*.mode1v3 | ||
project.xcworkspace | ||
xcuserdata | ||
tmp | ||
bin | ||
build | ||
*.zip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
ComTiopengles.h | ||
ComTiopengles.m |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/** | ||
* Copyright 2011 LANGRISE Co.,Ltd. All rights reserved. | ||
* | ||
* Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. | ||
* and licensed under the Apache Public License (version 2) | ||
*/ | ||
#import "TiModule.h" | ||
|
||
@interface ComTiopenglesModule : TiModule | ||
{ | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
/** | ||
* Copyright 2011 LANGRISE Co.,Ltd. All rights reserved. | ||
* | ||
* Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. | ||
* and licensed under the Apache Public License (version 2) | ||
*/ | ||
#import "ComTiopenglesModule.h" | ||
#import "ComTiopengles3DModel.h" | ||
#import "TiBase.h" | ||
#import "TiHost.h" | ||
#import "TiUtils.h" | ||
|
||
@implementation ComTiopenglesModule | ||
|
||
#pragma mark Internal | ||
|
||
// this is generated for your module, please do not change it | ||
-(id)moduleGUID | ||
{ | ||
return @"eecef08e-0041-4ceb-b094-43f6cafb8406"; | ||
} | ||
|
||
// this is generated for your module, please do not change it | ||
-(NSString*)moduleId | ||
{ | ||
return @"com.tiopengles"; | ||
} | ||
|
||
#pragma mark Lifecycle | ||
|
||
-(void)startup | ||
{ | ||
// this method is called when the module is first loaded | ||
// you *must* call the superclass | ||
[super startup]; | ||
|
||
NSLog(@"[INFO] %@ loaded",self); | ||
} | ||
|
||
-(void)shutdown:(id)sender | ||
{ | ||
// this method is called when the module is being unloaded | ||
// typically this is during shutdown. make sure you don't do too | ||
// much processing here or the app will be quit forceably | ||
|
||
// you *must* call the superclass | ||
[super shutdown:sender]; | ||
} | ||
|
||
#pragma mark Cleanup | ||
|
||
-(void)dealloc | ||
{ | ||
// release any resources that have been retained by the module | ||
[super dealloc]; | ||
} | ||
|
||
#pragma mark Internal Memory Management | ||
|
||
-(void)didReceiveMemoryWarning:(NSNotification*)notification | ||
{ | ||
// optionally release any resources that can be dynamically | ||
// reloaded once memory is available - such as caches | ||
[super didReceiveMemoryWarning:notification]; | ||
} | ||
|
||
#pragma mark Listener Notifications | ||
|
||
-(void)_listenerAdded:(NSString *)type count:(int)count | ||
{ | ||
if (count == 1 && [type isEqualToString:@"my_event"]) | ||
{ | ||
// the first (of potentially many) listener is being added | ||
// for event named 'my_event' | ||
} | ||
} | ||
|
||
-(void)_listenerRemoved:(NSString *)type count:(int)count | ||
{ | ||
if (count == 0 && [type isEqualToString:@"my_event"]) | ||
{ | ||
// the last listener called for event named 'my_event' has | ||
// been removed, we can optionally clean up any resources | ||
// since no body is listening at this point for that event | ||
} | ||
} | ||
|
||
#pragma Public APIs | ||
|
||
- (id)load3ds:(id)args | ||
{ | ||
ENSURE_ARRAY(args); | ||
id filename = [args objectAtIndex:0]; | ||
ENSURE_TYPE(filename, NSString); | ||
return [ComTiopengles3DModel load:filename]; | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
/** | ||
* This is a generated file. Do not edit or your changes will be lost | ||
*/ | ||
|
||
@interface ComTiopenglesModuleAssets : NSObject | ||
{ | ||
} | ||
- (NSData*) moduleAsset; | ||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
/** | ||
* This is a generated file. Do not edit or your changes will be lost | ||
*/ | ||
#import "ComTiopenglesModuleAssets.h" | ||
|
||
extern NSData * dataWithHexString (NSString * hexString); | ||
|
||
@implementation ComTiopenglesModuleAssets | ||
|
||
- (NSData*) moduleAsset | ||
{ | ||
return nil; | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
|
||
#ifdef __OBJC__ | ||
#import <Foundation/Foundation.h> | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
The MIT License | ||
|
||
Copyright (c) 2011 KATAOKA,Atsushi | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
Appcelerator Titanium iPhone Module Project | ||
=========================================== | ||
|
||
This is a skeleton Titanium Mobile iPhone module project. Modules can be | ||
used to extend the functionality of Titanium by providing additional native | ||
code that is compiled into your application at build time and can expose certain | ||
APIs into JavaScript. | ||
|
||
MODULE NAMING | ||
-------------- | ||
|
||
Choose a unique module id for your module. This ID usually follows a namespace | ||
convention using DNS notation. For example, com.appcelerator.module.test. This | ||
ID can only be used once by all public modules in Titanium. | ||
|
||
|
||
COMPONENTS | ||
----------- | ||
|
||
Components that are exposed by your module must follow a special naming convention. | ||
A component (widget, proxy, etc) must be named with the pattern: | ||
|
||
Ti<ModuleName><ComponentName>Proxy | ||
|
||
For example, if you component was called Foo, your proxy would be named: | ||
|
||
TiMyfirstFooProxy | ||
|
||
For view proxies or widgets, you must create both a view proxy and a view implementation. | ||
If you widget was named proxy, you would create the following files: | ||
|
||
TiMyfirstFooProxy.h | ||
TiMyfirstFooProxy.m | ||
TiMyfirstFoo.h | ||
TiMyfirstFoo.m | ||
|
||
The view implementation is named the same except it does contain the suffix `Proxy`. | ||
|
||
View implementations extend the Titanium base class `TiUIView`. View Proxies extend the | ||
Titanium base class `TiUIViewProxy` or `TiUIWidgetProxy`. | ||
|
||
For proxies that are simply native objects that can be returned to JavaScript, you can | ||
simply extend `TiProxy` and no view implementation is required. | ||
|
||
|
||
GET STARTED | ||
------------ | ||
|
||
1. Edit manifest with the appropriate details about your module. | ||
2. Edit LICENSE to add your license details. | ||
3. Place any assets (such as PNG files) that are required in the assets folder. | ||
4. Edit the titanium.xcconfig and make sure you're building for the right Titanium version. | ||
5. Code and build. | ||
|
||
BUILD TIME COMPILER CONFIG | ||
-------------------------- | ||
|
||
You can edit the file `module.xcconfig` to include any build time settings that should be | ||
set during application compilation that your module requires. This file will automatically get `#include` in the main application project. | ||
|
||
For more information about this file, please see the Apple documentation at: | ||
|
||
<http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/400-Build_Configurations/build_configs.html> | ||
|
||
|
||
DOCUMENTATION FOR YOUR MODULE | ||
----------------------------- | ||
|
||
You should provide at least minimal documentation for your module in `documentation` folder using the Markdown syntax. | ||
|
||
For more information on the Markdown syntax, refer to this documentation at: | ||
|
||
<http://daringfireball.net/projects/markdown/> | ||
|
||
|
||
TEST HARNESS EXAMPLE FOR YOUR MODULE | ||
------------------------------------ | ||
|
||
The `example` directory contains a skeleton application test harness that can be | ||
used for testing and providing an example of usage to the users of your module. | ||
|
||
|
||
INSTALL YOUR MODULE | ||
-------------------- | ||
|
||
1. Run `build.py` which creates your distribution | ||
2. cd to `/Library/Application Support/Titanium` | ||
3. copy this zip file into the folder of your Titanium SDK | ||
|
||
REGISTER YOUR MODULE | ||
--------------------- | ||
|
||
Register your module with your application by editing `tiapp.xml` and adding your module. | ||
Example: | ||
|
||
<modules> | ||
<module version="0.1">com.tiopengles</module> | ||
</modules> | ||
|
||
When you run your project, the compiler will know automatically compile in your module | ||
dependencies and copy appropriate image assets into the application. | ||
|
||
USING YOUR MODULE IN CODE | ||
------------------------- | ||
|
||
To use your module in code, you will need to require it. | ||
|
||
For example, | ||
|
||
var my_module = require('com.tiopengles'); | ||
my_module.foo(); | ||
|
||
WRITING PURE JS NATIVE MODULES | ||
------------------------------ | ||
|
||
You can write a pure JavaScript "natively compiled" module. This is nice if you | ||
want to distribute a JS module pre-compiled. | ||
|
||
To create a module, create a file named com.tiopengles.js under the assets folder. | ||
This file must be in the Common JS format. For example: | ||
|
||
exports.echo = function(s) | ||
{ | ||
return s; | ||
}; | ||
|
||
Any functions and properties that are exported will be made available as part of your | ||
module. All other code inside your JS will be private to your module. | ||
|
||
For pure JS module, you don't need to modify any of the Objective-C module code. You | ||
can leave it as-is and build. | ||
|
||
TESTING YOUR MODULE | ||
------------------- | ||
|
||
Run the `titanium.py` script to test your module or test from within XCode. | ||
To test with the script, execute: | ||
|
||
titanium run --dir=YOURMODULEDIR | ||
|
||
|
||
This will execute the app.js in the example folder as a Titanium application. | ||
|
||
|
||
DISTRIBUTING YOUR MODULE | ||
------------------------- | ||
|
||
Currently, you will need to manually distribution your module distribution zip file directly. However, in the near future, we will make module distribution and sharing built-in to Titanium Developer and in the Titanium Marketplace! | ||
|
||
|
||
Cheers! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Place your assets like PNG files in this directory and they will be packaged with your module. | ||
|
||
If you create a file named com.tiopengles.js in this directory, it will be | ||
compiled and used as your module. This allows you to run pure Javascript | ||
modules that are pre-compiled. | ||
|
Oops, something went wrong.