void loadShaders(JNIEnv *env, jobject &obj) {
    AAssetManager *asset_manager = AAssetManager_fromJava(env, obj);
    FILE *fd;
    fd = android_fopen("vertex.glsl", "r", asset_manager);
    gVertexShader = readToString(fd);
    fclose(fd);
    fd = android_fopen("fragment.glsl", "r", asset_manager);
    gFragmentShader = readToString(fd);
    fclose(fd);
}
示例#2
0
void HttpGet::run()
{
    if (!m_connection->m_networkAccessManager) {
        m_message = "Invalid Network Access Manager";
        m_status = Error;
        finished();
        return;
    }

    m_status = Running;
    QNetworkRequest request;
    request.setUrl(m_url);
    QLOG_DEBUG() << "Retrieving:" << m_url;

    m_networkReply = m_connection->m_networkAccessManager->get(request);

    connect(m_networkReply, SIGNAL(readyRead()), &m_timer, SLOT(start()));

    if (m_file) {
        connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToFile()));
        connect(m_networkReply, SIGNAL(finished()),  this, SLOT(closeFile()) );
    } else {
        connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToString()));
    }

    connect(m_networkReply, SIGNAL(finished()),  this, SLOT(finishedSlot()) );
    connect(m_networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(errorSlot(QNetworkReply::NetworkError)));

    m_timer.start();
}
示例#3
0
void HttpPost::run()
{
    if (!m_connection->m_networkAccessManager) {
        m_message = "Invalid Network Access Manager";
        m_status = Error;
        finished();
        return;
    }

    m_status = Running;
    QNetworkRequest request;

    request.setUrl(m_url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain; charset=UTF-8");

    QByteArray data(m_postData.toLatin1());

    qDebug() << "POST:" << data;

    m_networkReply = m_connection->m_networkAccessManager->post(request, data);

    QList<QByteArray> headers(m_networkReply->request().rawHeaderList());

    QList<QByteArray>::iterator iter;
    for (iter = headers.begin(); iter != headers.end(); ++iter) {
        qDebug() << "HEADER:" << *iter << m_networkReply->request().rawHeader(*iter);
    }

    connect(m_networkReply, SIGNAL(readyRead()), &m_timer, SLOT(start()));
    connect(m_networkReply, SIGNAL(readyRead()), this, SLOT(readToString()));
    connect(m_networkReply, SIGNAL(finished()),  this, SLOT(finishedSlot()) );
    connect(m_networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(errorSlot(QNetworkReply::NetworkError)));

    m_timer.start();
}
示例#4
0
// static
std::string File::readToString(const std::string &filename)
{
    return readToString(filename.c_str());
}
/**
 * Run a category of Xalan tests
 */
void runCategory(nsIFile* aConfCat, nsIFile* aGoldCat, nsIFile* aRefTmp,
                 txRDFOut* aOut)
{
    nsresult rv;
    //clone the nsIFiles, so that we can return easily
    nsCOMPtr<nsIFile> conf, gold;
    aConfCat->Clone(getter_AddRefs(conf));
    aGoldCat->Clone(getter_AddRefs(gold));
    nsCAutoString catName, refTmp;
    conf->GetNativeLeafName(catName);
    aRefTmp->GetNativePath(refTmp);
    txRDFOut results(catName, aOut);
    nsCOMPtr<nsISimpleEnumerator> tests;
    rv = conf->GetDirectoryEntries(getter_AddRefs(tests));
    if (NS_FAILED(rv))
        return;
    PRBool hasMore, isFile;
    nsCAutoString leaf;
    NS_NAMED_LITERAL_CSTRING(xsl, ".xsl");
    while (NS_SUCCEEDED(tests->HasMoreElements(&hasMore)) && hasMore) {
        nsCOMPtr<nsILocalFile> test;
        tests->GetNext(getter_AddRefs(test));
        test->GetNativeLeafName(leaf);
        if (xsl.Equals(Substring(leaf, leaf.Length()-4, 4))) {
            // we have a stylesheet, let's look for source and reference
            nsAFlatCString::char_iterator start, ext;
            leaf.BeginWriting(start);
            leaf.EndWriting(ext);
            ext -= 2;
            // overwrite extension with .xml
            *ext = 'm'; // this one was easy
            nsCOMPtr<nsIFile> source;
            conf->Clone(getter_AddRefs(source));
            rv = source->AppendNative(leaf);
            if (NS_SUCCEEDED(rv) && NS_SUCCEEDED(source->IsFile(&isFile)) &&
                isFile) {
                nsCOMPtr<nsIFile> reference;
                gold->Clone(getter_AddRefs(reference));
                // overwrite extension with .out
                --ext;
                nsCharTraits<char>::copy(ext, "out", 3);
                rv = reference->AppendNative(leaf);
                if (NS_SUCCEEDED(rv) &&
                    NS_SUCCEEDED(reference->IsFile(&isFile)) &&
                    isFile) {
                    nsCAutoString src, style, refPath;
                    test->GetNativePath(style);
                    source->GetNativePath(src);
                    reference->GetNativePath(refPath);
                    if (PR_GetDirectorySeparator() =='\\') {
                        src.ReplaceChar('\\','/');
                        style.ReplaceChar('\\','/');
                        refPath.ReplaceChar('\\','/');
                    }
                    SimpleErrorObserver obs;
                    txStandaloneXSLTProcessor proc;
                    fstream result(refTmp.get(),
                                   ios::in | ios::out | ios::trunc);
                    rv = proc.transform(src, style, result, obs);
                    PRBool success = PR_FALSE;
                    if (NS_SUCCEEDED(rv)) {
                        result.flush();
                        PRInt64 resultSize, refSize;
                        aRefTmp->GetFileSize(&resultSize);
                        reference->GetFileSize(&refSize);
                        result.seekg(0);
                        int toread = (int)resultSize;
                        nsCString resContent, refContent;
                        resContent.SetCapacity(toread);
                        readToString(result, resContent);
                        result.close();
                        ifstream refStream(refPath.get());
                        toread = (int)refSize;
                        refContent.SetCapacity(toread);
                        readToString(refStream, refContent);
                        refStream.close();
                        success = resContent.Equals(refContent);
                    }
                    ext--;
                    results.feed(Substring(start, ext), success);
                }
            }
        }
    }
}