void P_APIENTRY pMatrix4x4Print(const pfloat32 *matrix)
{
    PLOG_INFO("%6.3f %6.3f %6.3f %6.3f", matrix[0], matrix[4], matrix[8], matrix[12]);
    PLOG_INFO("%6.3f %6.3f %6.3f %6.3f", matrix[1], matrix[5], matrix[9], matrix[13]);
    PLOG_INFO("%6.3f %6.3f %6.3f %6.3f", matrix[2], matrix[6], matrix[10], matrix[14]);
    PLOG_INFO("%6.3f %6.3f %6.3f %6.3f", matrix[3], matrix[7], matrix[11], matrix[15]);
}
pbool MyContext::onInitialized()
{
    m_scene = PNEW(MyScene(this));
    PSceneManager *sceneMgr = module<PSceneManager>("scene-manager");
    sceneMgr->addScene(m_scene);
    sceneMgr->setMainScene(m_scene);

	PLOG_INFO("<Key settings>");
    PLOG_INFO("P - use point lighting");
    PLOG_INFO("D - use directional lighting");
    PLOG_INFO("S - use spot lighting");
    PLOG_INFO("H - switch low and high lighting quality");

    return true;
}
Exemple #3
0
int main(int argc, char * argv[])
{
    gflags::ParseCommandLineFlags(&argc, &argv, false); 

    delay_init::call_all_level();
    PLOG_INFO("delay init total:",delay_init::total_cnt
        ," success:",delay_init::success_cnt
        ,", failed:",delay_init::failed_cnt);

    if(delay_init::failed_cnt>0)
    {
        PLOG_ERROR("delay init failed, failed num:", delay_init::failed_cnt);
        return 1;
    }

    if (prepare_data(FLAGS_data_file.c_str())) {
        PLOG_ERROR("read data failed!");
        return 1;
    }

    conet::init_conet_global_env();
    conet::init_conet_env();
    CONET_DEFER({
        conet::free_conet_env();
        conet::free_conet_global_env();
    });
Exemple #4
0
void* server_worker_t::main(void * arg)
{
    conet::init_conet_env();

    server_worker_t *self = (server_worker_t *)(arg);

    if (self->cpu_affinity && CPU_COUNT(self->cpu_affinity) > 0) {
        int ret = 0;
        pthread_t tid = pthread_self();
        ret = pthread_setaffinity_np(tid, sizeof(cpu_set_t), self->cpu_affinity);
        if (ret) {
            PLOG_ERROR("set affinity failed , ", (tid, ret));
        } else {
            PLOG_INFO("set affinity success, ", (tid));
        }
    }

    int size = self->conf.servers_size();

    for (int i=0; i<size; ++i)
    {
        RpcServer const & server_conf = self->conf.servers(i);
        rpc_pb_server_t *rpc_server =  self->build_rpc_server(server_conf);
        if (rpc_server) {
            self->rpc_servers.push_back(rpc_server);
        }
    }

    int ret = 0;
    size = self->rpc_servers.size();
    for (int i=0; i<size; ++i)
    { // 启动server
        ret = self->rpc_servers[i]->start();
        if (ret)
        {
            PLOG_ERROR("error start");
        }
    }

    coroutine_t *exit_co = NULL;

    while (likely(!self->exit_finsished)) 
    {
        if (unlikely(self->stop_flag && exit_co == NULL)) 
        {
            exit_co = conet::alloc_coroutine(
                    conet::ptr_cast<conet::co_main_func_t>(
                        &server_worker_t::proc_server_exit), self);
            conet::resume(exit_co);
        }
        conet::dispatch();
    }
    conet::free_coroutine(exit_co);
    conet::free_conet_env();
    return NULL;
}
Exemple #5
0
pbool MyContext::onInitialized()
{
    m_scene = PNEW(MyScene(this));
    PSceneManager *sceneMgr = module<PSceneManager>("scene-manager");
    sceneMgr->addScene(m_scene);
    sceneMgr->setMainScene(m_scene);

    PLOG_INFO("Press key 'P' to stop/start the rotation.");

    return true;
}
PGlState::PGlState(const puint32 *initialViewport)
{
    m_initialViewport[0] = initialViewport[0];
    m_initialViewport[1] = initialViewport[1];
    m_initialViewport[2] = initialViewport[2];
    m_initialViewport[3] = initialViewport[3];

    reset();
    
    const GLubyte* vendor = glGetString(GL_VENDOR);
    PLOG_INFO("Running on %s display card", (pchar*)(vendor));
}
void P_APIENTRY pDebugPrintStack(pint32 skip)
{
    typedef USHORT (WINAPI *CaptureStackBackTraceType)(__in ULONG, __in ULONG, __out PVOID*, __out_opt PULONG);
    CaptureStackBackTraceType func = (CaptureStackBackTraceType)(GetProcAddress(LoadLibrary(TEXT("kernel32.dll")), 
                "RtlCaptureStackBackTrace"));

    if (func == NULL)
    {
        return ; 
    }

    // Quote from Microsoft Documentation:
    // ## Windows Server 2003 and Windows XP:  
    // ## The sum of the FramesToSkip and FramesToCapture parameters must be less than 63.
    const int kMaxCallers = 62; 

    HANDLE hProcess = GetCurrentProcess();
    SymInitialize(hProcess, NULL, TRUE);

    PSYMBOL_INFO pSymbol = (PSYMBOL_INFO)malloc(sizeof(SYMBOL_INFO) + 256);
    pSymbol->SizeOfStruct = sizeof(SYMBOL_INFO);
    pSymbol->MaxNameLen = 255;
    
    void* callers[kMaxCallers];
    int count = (func)(0, kMaxCallers, callers, NULL);

    // To skip the pDebugPrintStack function frame, we start from 1 instead of 0.
    for(int i = skip; i < count; i++)
    {
        //PLOG_INFO("*** %d called from %016I64LX\n", i, callers[i]);

        DWORD addr = (DWORD)(callers[i]);
        DWORD64 symDisplacement = 0;
        if (SymFromAddr(hProcess, addr, 0, pSymbol))
        {
            IMAGEHLP_LINE lineInfo = {sizeof(IMAGEHLP_LINE)};
            DWORD dwLineDisplacement;

            if (SymGetLineFromAddr(hProcess, addr, &dwLineDisplacement, &lineInfo))
            {
                PLOG_INFO("%s:%s(),Line %u", lineInfo.FileName, pSymbol->Name, lineInfo.LineNumber); 
            }
            
            // Stop the walk at main function. 
            if (pstrcmp(pSymbol->Name, "main") == 0)
            {
                break;
            }
        }
    }
    
    SymCleanup(GetCurrentProcess());
}
void P_APIENTRY pVector3Print(const pfloat32 *vector3)
{
    PLOG_INFO("%6.3f %6.3f %6.3f", vector3[0], vector3[1], vector3[2]);
}
void MyClient::onConnected()
{
    PLOG_INFO("Connecting to %s:%d succeed.", m_address.c_str(), m_port);
}