Exemple #1
0
    public void SwitchRECState(EMRECState state)
    {
        switch (state)
        {
        case EMRECState.EMREC_RECORD:
        {
            if (recState == EMRECState.EMREC_STOP)
            {
                StartRecord();
            }
        }
        break;

        case EMRECState.EMREC_DELAY:
        {
            if (recState == EMRECState.EMREC_RECORD)
            {
                recState = EMRECState.EMREC_DELAY;
            }
        }
        break;

        case EMRECState.EMREC_STOP:
        {
            if (recState == EMRECState.EMREC_RECORD || recState == EMRECState.EMREC_DELAY)
            {
                StopRecord();
            }
        }
        break;

        default:
            break;
        }
    }
Exemple #2
0
    private void StopRecord()
    {
        string outFilePath = "";

        if (bRECValid)
        {
            outFilePath = GetAppendFilePath();
            RecordWarVideo(new SWarGloryMomentVideoData(recType, outFilePath));
        }

        gameview_stop_screenCapture data = new gameview_stop_screenCapture();

        data.nValid        = bRECValid ? 1 : 0;
        data.szOutFilePath = outFilePath;
        ViewEventHelper.Instance.SendCommand <gameview_stop_screenCapture>(GameLogicDef.GVIEWCMD_SCREENOPEN_STOP, ref data);

        bRECValid      = false;
        recType        = EMScreenRECType.EMSS_Invalid;
        checkPointTime = 0;
        nHeroID        = 0;

        recState = EMRECState.EMREC_STOP;
    }
Exemple #3
0
    private void StartRecord()
    {
        if (!bOpenREC)
        {
            return;
        }

        if (GameLogicAPI.isMainMap(SceneManager.Instance.getCurrentMapId()))
        {
            return;
        }

        string rootPath = ViewConfigManager.DataUserPath;

        if (rootPath == "")
        {
            return;
        }

        string tempPath = rootPath + "/" + szTempPathName;

        if (!Directory.Exists(tempPath))
        {
            Directory.CreateDirectory(tempPath);
        }

        gameview_start_screenCapture data = new gameview_start_screenCapture();

        if (Application.isEditor)
        {
            data.point_x = 0;
            data.point_y = 0;
            int width, height;
            ImageSetting.GetMainMonitorSize(out width, out height);
            data.width  = width;
            data.height = height;
        }
        else
        {
            RECTAPI rect = new RECTAPI();
            GameLogicAPI.GetWindowRect(Initialize.m_WindowHwnd, ref rect);

            data.point_x = rect.left;
            data.point_y = rect.top;

            int titleHeight = GameLogicAPI.GetSystemMetrics((int)ESystemMetrics.SM_CYCAPTION);
            //int frameBorder = GameLogicAPI.GetSystemMetrics((int)ESystemMetrics.SM_CXFRAME);

            data.width  = rect.right - rect.left;
            data.height = rect.bottom - rect.top;

            if (rect.top > 0)
            {
                data.point_y += titleHeight;
                data.height  -= titleHeight;
            }
        }
        data.width  = Mathf.Abs(data.width % 2 == 0 ? data.width : data.width - 1);
        data.height = Mathf.Abs(data.height % 2 == 0 ? data.height : data.height - 1);

        data.szTempFilePath = tempPath;
        ViewEventHelper.Instance.SendCommand <gameview_start_screenCapture>(GameLogicDef.GVIEWCMD_SCREENOPEN_OPEN, ref data);

        bRECValid      = false;
        nHeroID        = 0;
        checkPointTime = 0;
        recType        = EMScreenRECType.EMSS_Invalid;
        recState       = EMRECState.EMREC_RECORD;
    }