Beispiel #1
0
void OnReceiveWorld ( SharedResourcePtr resource )
{
    std::cout << "World::" << resource->getName().toStdString() << std::endl;
    Assets::WorldPtr world = resource.dynamicCast<Assets::World> ();
    for ( int i = 0 ; i < world->getSize < QUuid > ( "Cells" ) ; i ++ ) {
        fetchResource ( world->get < QUuid > ( "Cells", i ) );
    }
}
Beispiel #2
0
void OnReceiveWorldCell ( SharedResourcePtr resource )
{
    std::cout << "WorldCell::" << resource->getName().toStdString() << std::endl;
    Assets::WorldCellPtr cell = resource.dynamicCast<Assets::WorldCell> ();
    for ( int i = 0 ; i < cell->getSize < QUuid > ( "GameObjects" ) ; i ++ ) {
        fetchResource ( cell->get < QUuid > ( "GameObjects", i ) );
    }
}
Beispiel #3
0
void OnReceiveMesh ( SharedResourcePtr resource )
{
    std::cout << "Mesh::" << resource->getName().toStdString() << std::endl;
    Assets::MeshPtr mesh = resource.dynamicCast<Assets::Mesh> ();
    for ( unsigned int i = 0 ; i < mesh->getSize < Assets::MaterialGroup* > ( "MaterialGroups" ) ; i ++ ) {
        Assets::MaterialGroup* grp = mesh->get < Assets::MaterialGroup* > ( "MaterialGroups", i );
        fetchResource ( grp->get < QUuid > ( "Material" ) );
    }
}
Beispiel #4
0
void OnReceiveGameEntity ( SharedResourcePtr resource )
{
    std::cout << "GameEntity::" << resource->getName().toStdString() << std::endl;
    Assets::GameEntityPtr ge = resource.dynamicCast<Assets::GameEntity> ();
    for ( int i = 0 ; i < ge->getSize < Assets::GameEntityElement* > ( "Elements" ) ; i ++ ) {
        Assets::GameEntityElement* elt = ge->get < Assets::GameEntityElement* > ( "Elements", i );
        for ( int j = 0 ; j < elt->getSize < QUuid > ( "Resources" ) ; j ++ ) {
            fetchResource ( elt->get < QUuid > ( "Resources", j ) );
        }
    }
}
Beispiel #5
0
 static int64_t HHVM_METHOD(UVIdle, stop) {
     auto* data = Native::data<UVNativeData>(this_);
     uv_idle_ext_t *idle_handle = fetchResource(data);
     int64_t ret = 0;
     if(idle_handle->start){
         ret = uv_idle_stop((uv_idle_t *) idle_handle);
         this_->decRefAndRelease();
         idle_handle->start = false;            
     }
     return ret;
 }    
Beispiel #6
0
 static int64_t HHVM_METHOD(UVIdle, start, const Variant &idle_cb) {
     auto* data = Native::data<UVNativeData>(this_);
     uv_idle_ext_t *idle_handle = fetchResource(data);
     data->callback = idle_cb;
     int64_t ret = uv_idle_start(idle_handle, (uv_idle_cb) idle_handle_callback);
     if(ret == 0){
         idle_handle->start = true;
         idle_handle->idle_object_data = this_;
         this_->incRefCount();
     }
     return ret;
 }
Beispiel #7
0
/*
Send-Import:
    Count 1658 bytes
    Dict Size 76272 bytes
    Data Size 91315785 bytes
    Total Size 91392057 bytes
Recv-Export:
    Count 1616 bytes
    Dict Size 74340 bytes
    Data Size 91309561 bytes
    Total Size 91383901 bytes
*/
int main ( int argc, char** argv ) {
    /*
    __attach();
    __attachInterfaces();
    __attachGenerics();
    __attachAssets();*/
    __attachQImage();
    __attachWavefront();

    recvCB [ UUIDManager::createUUID("AssetImplementation::World") ] = OnReceiveWorld;
    recvCB [ UUIDManager::createUUID("AssetImplementation::WorldCell") ] = OnReceiveWorldCell;
    recvCB [ UUIDManager::createUUID("AssetImplementation::GameObject") ] = OnReceiveGameObject;
    recvCB [ UUIDManager::createUUID("AssetImplementation::GameEntity") ] = OnReceiveGameEntity;
    recvCB [ UUIDManager::createUUID("AssetImplementation::Light") ] = OnReceiveLight;
    recvCB [ UUIDManager::createUUID("AssetImplementation::Image") ] = OnReceiveImage;
    recvCB [ UUIDManager::createUUID("AssetImplementation::WavefrontMaterial") ] = OnReceiveWavefrontMaterial;
    recvCB [ UUIDManager::createUUID("AssetImplementation::Mesh") ] = OnReceiveMesh;

    SimpleTcpEndPoint::Options options;
    options.serverIP = "127.0.0.1";
    options.connectionPort = 3000;
    SimpleTcpEndPoint client ( options );
    if ( client.open() == false ) exit ( -1 );
    // reception de l'UUID du monde
    QUuid worldID = receiveUUID(client);
    fetchResource(worldID);
    while ( true ) {
        if ( resourceToFetch.size() > 0 ) {
            QUuid uuid = resourceToFetch.dequeue();
            if ( recvResources.find(uuid)==recvResources.end () ) {
                sendUUID(client, uuid);
                receiveResource(client);
            }
        }
        else break;
    }
    std::cout << "Received " << received << " bytes" << std::endl;
    /*
    sendUUID(client,worldID);
    Assets::WorldPtr world = receiveResource(client).dynamicCast<Assets::World>();
    std::cout << world->mTypeID.toString().toStdString() << std::endl;
    std::cout << UUIDManager::createUUID("AssetImplementation::World").toString().toStdString() << std::endl;
    for ( int i = 0 ; i < world->getSize < QUuid > ( "Cells" ) ; i ++ ) {
        sendUUID(client,world->get < QUuid > ( "Cells", i ));
        Assets::WorldCellPtr cell = receiveResource(client).dynamicCast<Assets::WorldCell>();
    }
    */
    client.close ();
    ResourceHolder::Export( "world.binary" );
    return 0;
}
Beispiel #8
0
void OnReceiveWavefrontMaterial ( SharedResourcePtr resource )
{
    QUuid fake;
    std::cout << "WavefrontMaterial::" << resource->getName().toStdString() << std::endl;
    Assets::MaterialPtr material = resource.dynamicCast<WavefrontMaterial> ();
    if ( fake != material->get < Texture > ( "AmbientMap" ).imageID )
        fetchResource ( material->get < Texture > ( "AmbientMap" ).imageID );
    if ( fake != material->get < Texture > ( "DiffuseMap" ).imageID )
        fetchResource ( material->get < Texture > ( "DiffuseMap" ).imageID );
    if ( fake != material->get < Texture > ( "SpecularMap" ).imageID )
        fetchResource ( material->get < Texture > ( "SpecularMap" ).imageID );
    if ( fake != material->get < Texture > ( "SpecularExponentMap" ).imageID )
        fetchResource ( material->get < Texture > ( "SpecularExponentMap" ).imageID );
    if ( fake != material->get < Texture > ( "DissolveMap" ).imageID )
        fetchResource ( material->get < Texture > ( "DissolveMap" ).imageID );
    if ( fake != material->get < Texture > ( "DecalMap" ).imageID )
        fetchResource ( material->get < Texture > ( "DecalMap" ).imageID );
    if ( fake != material->get < Texture > ( "DisplacementMap" ).imageID )
        fetchResource ( material->get < Texture > ( "DisplacementMap" ).imageID );
    if ( fake != material->get < Texture > ( "BumpMap" ).imageID )
        fetchResource ( material->get < Texture > ( "BumpMap" ).imageID );
    if ( fake != material->get < Texture > ( "ReflectionMap" ).imageID )
        fetchResource ( material->get < Texture > ( "ReflectionMap" ).imageID );
}
Beispiel #9
0
    static void HHVM_METHOD(UVIdle, __construct, const Variant &v_loop) {
        auto* data = Native::data<UVNativeData>(this_);
        data->resource_handle = (void *) new uv_idle_ext_t();
        uv_idle_ext_t *idle_handle = fetchResource(data);
        idle_handle->start = false;
        idle_handle->idle_object_data = NULL;
        
        if(v_loop.isNull()){
            uv_idle_init(uv_default_loop(), idle_handle);
            return;
        }
        
        Object loop = v_loop.toObject();
        checkUVLoopInstance(loop, 1, s_uvidle, StaticString("__construct"));
        auto* loop_data = Native::data<UVLoopData>(loop.get());        
        SET_LOOP(this_, loop, s_uvidle);
        uv_idle_init(loop_data->loop, idle_handle);

    }
Beispiel #10
0
void OnReceiveGameObject ( SharedResourcePtr resource )
{
    std::cout << "GameObject::" << resource->getName().toStdString() << std::endl;
    Assets::GameObjectPtr go = resource.dynamicCast<Assets::GameObject> ();
    fetchResource ( go->get < QUuid > ( "Entity" ) );
}
Beispiel #11
0
 static void HHVM_METHOD(UVIdle, __destruct) {
     auto* data = Native::data<UVNativeData>(this_);
     uv_idle_ext_t *idle_handle = fetchResource(data);
     releaseHandle(idle_handle);
 }