int FacebookProto::GetInfo(MCONTACT hContact, int infoType) { ptrA user_id(getStringA(hContact, FACEBOOK_KEY_ID)); if (user_id == NULL) return 1; facebook_user fbu; fbu.user_id = user_id; LoadContactInfo(&fbu); // TODO: don't duplicate code this way, refactor all this userInfo loading // TODO: load more info about user (authorization state,...) std::string homepage = FACEBOOK_URL_PROFILE + fbu.user_id; setString(hContact, "Homepage", homepage.c_str()); if (!fbu.real_name.empty()) { SaveName(hContact, &fbu); } if (fbu.gender) setByte(hContact, "Gender", fbu.gender); CheckAvatarChange(hContact, fbu.image_url); return 1; }
static int CreatePS(int device, char *name) { if (SaveName(device, name)) return 1; outEngines[device]= GpPSEngine("CGM Viewer", cgmLandscape, 0, name); if (!outEngines[device]) { Warning(gistError, ""); Warning("Unable to create PostScript engine ", name); return 1; } outTypes[device]= 1; outDraw[device]= 0; outSend[device]= 1; return 0; }
static int CreateX(int device, char *name) { if (SaveName(device, name)) return 1; gist_input_hint = 1; outEngines[device]= GpBXEngine("CGM Viewer", cgmLandscape, defaultDPI, name); if (!outEngines[device]) { Warning(gistError, ""); Warning("Unable to open X server ", name? name : "(default)"); return 1; } outTypes[device]= 2; outDraw[device]= 1; outSend[device]= 0; GxInput(outEngines[device], &HandleExpose, 0, 0, &HandleOther); return 0; }
//************************************************ //*初始化DirectX 3D //************************************************ HRESULT t1::InitD3D(HWND hWnd) { m_TestState = STATE_DISPLAYINSTURCTION; m_TrialNo = -1; m_bDisplayReady = TRUE; m_PointTime = NULL; if (m_Setting.m_iJoyMoveDirection == 0) iJoyMoveDirection = 1; else iJoyMoveDirection = -1; if (m_Setting.m_PracMode == 1) { m_TrialType = TRIAL_PRACTICE; } else { m_TrialType = TRIAL_EXPERMENT; } //材质大小 // SetRect( &rct, 0, 0, 128, 128 ); SetRect(&strurect, x_resolution / 2 - 300 * FontScale, y_resolution / 2 - 180 * FontScale, x_resolution / 2 + 300 * FontScale, y_resolution / 2 + 20 * FontScale); SetRect(&erect, x_resolution / 2 - 300 * FontScale, y_resolution / 2 - 100 * FontScale, x_resolution / 2 + 300 * FontScale, y_resolution / 2 + 100 * FontScale); SetRect(&txtrect, x_resolution / 2 - 100 * FontScale + 5, y_resolution / 2 - 30 * FontScale + 1, x_resolution / 2 + 100 * FontScale - 5, y_resolution / 2 + 20 * FontScale - 1); SetRect(&lerect, x_resolution / 2 - 250 * FontScale, y_resolution / 2 - 50 * FontScale, x_resolution / 2 - 50 * FontScale, y_resolution / 2 + 100 * FontScale); SetRect(&rerect, x_resolution / 2 + 50 * FontScale, y_resolution / 2 - 50 * FontScale, x_resolution / 2 + 250 * FontScale, y_resolution / 2 + 100 * FontScale); if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION))) { return E_FAIL; } D3DPRESENT_PARAMETERS d3dpp; ZeroMemory(&d3dpp, sizeof(d3dpp)); d3dpp.Windowed = TRUE;//FALSE;// d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP;//D3DSWAPEFFECT_COPY;//D3DSWAPEFFECT_DISCARD;// // d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; D3DDISPLAYMODE d3ddm; if (FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm))) { return E_FAIL; } d3dpp.BackBufferWidth = x_resolution;//d3ddm.Width;// d3dpp.BackBufferHeight = y_resolution;//d3ddm.Height;// d3dpp.BackBufferFormat = d3ddm.Format; if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice))) { return E_FAIL; } g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE); //创建精灵 if (FAILED(D3DXCreateSprite(g_pd3dDevice, &g_pSprite))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } //加载纹理图片 if (m_Setting.m_MoveMode == 0) { if (m_Setting.m_iJoyMoveDirection == 0) { if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Inst\\ST_tracking.jpg"), &g_pTextureInst))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } } else { if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Inst\\ST_tracking_a.jpg"), &g_pTextureInst))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } } } else { if (m_Setting.m_iJoyMoveDirection == 0) { if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Inst\\DTtracking_and_rotate.jpg"), &g_pTextureInst))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } } else { if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Inst\\DTtracking_and_rotate_a.jpg"), &g_pTextureInst))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } } } if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Task1\\obj_white.bmp"), &g_pTexture0))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Task1\\post_yellow.bmp"), &g_pTexture1))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } if (FAILED(D3DXCreateTextureFromFile(g_pd3dDevice, TEXT("Pics\\Task1\\post_red.bmp"), &g_pTexture2))) { MessageBox(NULL, TEXT("Could not find banana.bmp"), TEXT("Textures.exe"), MB_OK); return E_FAIL; } LOGFONT lf; ZeroMemory(&lf, sizeof(LOGFONT)); lstrcpy(lf.lfFaceName, TEXT("Times New Roman")); lf.lfHeight = -16; if (FAILED(D3DXCreateFont(g_pd3dDevice, 30 * FontScale, 15 * FontScale, 20, 0, 0, GB2312_CHARSET, 0, 0, 0, TEXT("宋体"), &g_pFont))) { return E_FAIL; } if (FAILED(D3DXCreateFont(g_pd3dDevice, 40 * FontScale, 20 * FontScale, 20, 0, 0, GB2312_CHARSET, 0, 0, 0, TEXT("宋体"), &g_pFont1))) { return E_FAIL; } g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE); // g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); SaveName(); return S_OK; }
spv_result_t FriendlyNameMapper::ParseInstruction( const spv_parsed_instruction_t& inst) { const auto result_id = inst.result_id; switch (inst.opcode) { case SpvOpName: SaveName(inst.words[1], reinterpret_cast<const char*>(inst.words + 2)); break; case SpvOpTypeVoid: SaveName(result_id, "void"); break; case SpvOpTypeBool: SaveName(result_id, "bool"); break; case SpvOpTypeInt: { std::string signedness; std::string root; const auto bit_width = inst.words[2]; switch (bit_width) { case 8: root = "char"; break; case 16: root = "short"; break; case 32: root = "int"; break; case 64: root = "long"; break; default: root = to_string(bit_width); signedness = "i"; break; } if (0 == inst.words[3]) signedness = "u"; SaveName(result_id, signedness + root); } break; case SpvOpTypeFloat: { const auto bit_width = inst.words[2]; switch (bit_width) { case 16: SaveName(result_id, "half"); break; case 32: SaveName(result_id, "float"); break; case 64: SaveName(result_id, "double"); break; default: SaveName(result_id, std::string("fp") + to_string(bit_width)); break; } } break; case SpvOpTypeVector: SaveName(result_id, std::string("v") + to_string(inst.words[3]) + NameForId(inst.words[2])); break; case SpvOpTypeMatrix: SaveName(result_id, std::string("mat") + to_string(inst.words[3]) + NameForId(inst.words[2])); break; case SpvOpTypeArray: SaveName(result_id, std::string("_arr_") + NameForId(inst.words[2]) + "_" + NameForId(inst.words[3])); break; case SpvOpTypeRuntimeArray: SaveName(result_id, std::string("_runtimearr_") + NameForId(inst.words[2])); break; case SpvOpTypePointer: SaveName(result_id, std::string("_ptr_") + NameForEnumOperand(SPV_OPERAND_TYPE_STORAGE_CLASS, inst.words[2]) + "_" + NameForId(inst.words[3])); break; case SpvOpTypePipe: SaveName(result_id, std::string("Pipe") + NameForEnumOperand(SPV_OPERAND_TYPE_ACCESS_QUALIFIER, inst.words[2])); break; case SpvOpTypeEvent: SaveName(result_id, "Event"); break; case SpvOpTypeDeviceEvent: SaveName(result_id, "DeviceEvent"); break; case SpvOpTypeReserveId: SaveName(result_id, "ReserveId"); break; case SpvOpTypeQueue: SaveName(result_id, "Queue"); break; case SpvOpTypeOpaque: SaveName(result_id, std::string("Opaque_") + Sanitize(reinterpret_cast<const char*>(inst.words + 2))); break; case SpvOpTypePipeStorage: SaveName(result_id, "PipeStorage"); break; case SpvOpTypeNamedBarrier: SaveName(result_id, "NamedBarrier"); break; case SpvOpTypeStruct: // Structs are mapped rather simplisitically. Just indicate that they // are a struct and then give the raw Id number. SaveName(result_id, std::string("_struct_") + to_string(result_id)); break; default: // If this instruction otherwise defines an Id, then save a mapping for // it. This is needed to ensure uniqueness in there is an OpName with // string something like "1" that might collide with this result_id. // We should only do this if a name hasn't already been registered by some // previous forward reference. if (result_id && name_for_id_.find(result_id) == name_for_id_.end()) SaveName(result_id, to_string(result_id)); break; } return SPV_SUCCESS; }