Beispiel #1
0
size_t SkResourceCache::GetEffectiveSingleAllocationByteLimit() {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->getEffectiveSingleAllocationByteLimit();
}
Beispiel #2
0
void SkResourceCache::PurgeAll() {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->purgeAll();
}
Beispiel #3
0
void SkResourceCache::Dump() {
    SkAutoMutexAcquire am(gMutex);
    get_cache()->dump();
}
Beispiel #4
0
size_t SkResourceCache::SetSingleAllocationByteLimit(size_t size) {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->setSingleAllocationByteLimit(size);
}
Beispiel #5
0
SkBitmap::Allocator* SkResourceCache::GetAllocator() {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->allocator();
}
Beispiel #6
0
SkCachedData* SkResourceCache::NewCachedData(size_t bytes) {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->newCachedData(bytes);
}
Beispiel #7
0
size_t SkResourceCache::SetTotalByteLimit(size_t newLimit) {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->setTotalByteLimit(newLimit);
}
Beispiel #8
0
SkResourceCache::DiscardableFactory SkResourceCache::GetDiscardableFactory() {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->discardableFactory();
}
Beispiel #9
0
size_t SkResourceCache::GetTotalByteLimit() {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->getTotalByteLimit();
}
Beispiel #10
0
void
TUIGame::handleTestSuite(const std::string& cmd) {
    std::ifstream fr;
    int lineNo = -1;
    try {
        size_t idx = cmd.find_first_of(' ');
        if (idx == cmd.npos)
            return;
        std::string filename(cmd.substr(0, idx));
        std::string timeStr(cmd.substr(idx + 1));
        int timeLimit;
        if (!str2Num(timeStr, timeLimit)) {
            std::cout << "Error parsing number: " << timeStr << std::endl;
            return;
        }
//        std::cout << "file:" << filename << " time:" << timeStr << " (" << timeLimit << ")" << std::endl;
        fr.open(filename.c_str());
        Player& pl = whitePlayer->isHumanPlayer() ? *blackPlayer : *whitePlayer;
        if (pl.isHumanPlayer()) {
            std::cout << "No computer player available" << std::endl;
            return;
        }
        ComputerPlayer& cp = static_cast<ComputerPlayer&>(pl);
        int numRight = 0;
        int numTotal = 0;
        std::string line;
        lineNo = 0;
        while (getline(fr, line).good()) {
            lineNo++;
            if (startsWith(line, "#") || (line.length() == 0))
                continue;
            size_t idx1 = line.find(" bm ");
            if (idx1 == line.npos) {
                std::cout << "Parse error, line:" << lineNo << std::endl;
                return;
            }
            std::string fen = line.substr(0, idx1);
            size_t idx2 = line.find(";", idx1);
            if (idx2 == line.npos) {
                std::cout << "Parse error, line:" << lineNo << std::endl;
                return;
            }
            std::string bm = line.substr(idx1+4, idx2 - (idx1+4));
//            std::cout << "Line " << std::setw(3) << lineNo << ": fen:" << fen << " bm:" << bm << std::endl;
            Position testPos = TextIO::readFEN(fen);
            cp.clearTT();
            std::pair<Move, std::string> ret = cp.searchPosition(testPos, timeLimit);
            Move sm = ret.first;
            std::string PV = ret.second;
            Move m(sm);
            std::vector<std::string> answers;
            splitString(bm, answers);
            bool correct = false;
            for (size_t i = 0; i < answers.size(); i++) {
                const std::string& a = answers[i];
                Move am(TextIO::stringToMove(testPos, a));
                if (am.isEmpty())
                    throw ChessParseError("Invalid move " + a);
                if (am.equals(m)) {
                    correct = true;
                    break;
                }
            }
            if (correct)
                numRight++;
            numTotal++;
            std::cout << std::setw(3) << lineNo
                      << ' ' << std::setw(6) << TextIO::moveToString(testPos, sm, false)
                      << ' ' << std::setw(6) << sm.score()
                      << ' ' << (correct ? 1 : 0)
                      << ' ' << std::setw(3) << numRight
                      << '/' << std::setw(3) << numTotal
                      << ' ' << bm << " : " << PV << std::endl;
        }
        fr.close();
    } catch (const std::ifstream::failure& ex) {
        std::cout << "IO error: " << ex.what() << std::endl;
    } catch (const ChessParseError& cpe) {
        std::cout << "Parse error, line " << lineNo << ": " << cpe.what() << std::endl;
    }
}
Beispiel #11
0
void SkResourceCache::VisitAll(Visitor visitor, void* context) {
    SkAutoMutexAcquire am(gMutex);
    get_cache()->visitAll(visitor, context);
}
Beispiel #12
0
void SkResourceCache::Add(Rec* rec, void* payload) {
    SkAutoMutexAcquire am(gMutex);
    get_cache()->add(rec, payload);
}
Beispiel #13
0
bool SkResourceCache::Find(const Key& key, FindVisitor visitor, void* context) {
    SkAutoMutexAcquire am(gMutex);
    return get_cache()->find(key, visitor, context);
}