Example #1
0
std::vector<DisplayModeDescriptor> LinuxDisplay::QuerySupportedDisplayModes() const
{
    std::vector<DisplayModeDescriptor> displayModeDescs;
    
    DisplayModeDescriptor modeDesc;
    
    /* Get all screen sizes from X11 extension Xrandr */
    int numSizes = 0;
    auto scrSizes = XRRSizes(GetNative(), screen_, &numSizes);
    
    for (int i = 0; i < numSizes; ++i)
    {
        /* Initialize resolution */
        modeDesc.resolution.width   = static_cast<std::uint32_t>(scrSizes[i].width);
        modeDesc.resolution.height  = static_cast<std::uint32_t>(scrSizes[i].height);
        
        /* Add one display mode for each rate */
        int numRates = 0;
        auto rates = XRRRates(GetNative(), screen_, i, &numRates);
        
        for (int j = 0; j < numRates; ++j)
        {
            modeDesc.refreshRate = static_cast<std::uint32_t>(rates[j]);
            displayModeDescs.push_back(modeDesc);
        }
    }

    /* Sort final display mode list and remove duplciate entries */
    FinalizeDisplayModes(displayModeDescs);

    return displayModeDescs;
}
Example #2
0
Offset2D LinuxDisplay::GetOffset() const
{
    /* Get display offset from position of root window */
    XWindowAttributes attribs = {};
    XGetWindowAttributes(GetNative(), RootWindow(GetNative(), screen_), &attribs);
    return Offset2D
    {
        attribs.x, attribs.y
    };
}
 void NoteChildren(JSObject* aProxy,
                   nsCycleCollectionTraversalCallback& aCb) const override {
   auto location =
       static_cast<BrowsingContext::LocationProxy*>(GetNative(aProxy));
   CycleCollectionNoteChild(aCb, location->GetBrowsingContext(),
                            "js::GetObjectPrivate(obj)->GetBrowsingContext()");
 }
Example #4
0
        void NWindow::OnSize(int width, int height)
        {
            if(rootFrame_)
                rootFrame_->SetSize(width, height);

            HRGN rgn = ::CreateRectRgn(0, 0, width, height);
            if(rgn != NULL)
                ::SetWindowRgn(GetNative(), rgn, FALSE);
        }
Example #5
0
std::unique_ptr<Display> Display::QueryPrimary()
{
    /* Allocate single X11 display handler */
    auto sharedX11Display   = std::make_shared<LinuxSharedX11Display>();
    auto dpy                = sharedX11Display->GetNative();
    
    /* Make new display with default screen index */
    return MakeUnique<LinuxDisplay>(sharedX11Display, DefaultScreen(dpy));
}
Example #6
0
bool NxsFilePath::OpenInput(std::ifstream &inFStream) const
	{
	inFStream.close();
	inFStream.clear();
	inFStream.open(GetNative().c_str());
	if (inFStream.good())
		return true;
	inFStream.close();
	inFStream.clear();
	return false;
	}
Example #7
0
std::vector<std::unique_ptr<Display>> Display::QueryList()
{
    std::vector<std::unique_ptr<Display>> displayList;
    
    /* Allocate shared X11 display handler */
    auto sharedX11Display   = std::make_shared<LinuxSharedX11Display>();
    auto dpy                = sharedX11Display->GetNative();
    
    for (int i = 0, n = ScreenCount(dpy); i < n; ++i)
    {
        /* Make new display with current screen index */
        displayList.emplace_back(MakeUnique<LinuxDisplay>(sharedX11Display, i));
    }

    return displayList;
}
Example #8
0
DisplayModeDescriptor LinuxDisplay::GetDisplayMode() const
{
    DisplayModeDescriptor modeDesc;
    
    auto dpy = GetNative();
    if (auto scr = ScreenOfDisplay(dpy, screen_))
    {
        auto rootWnd = RootWindow(dpy, screen_);
        
        /* Get screen resolution from X11 screen */
        modeDesc.resolution.width   = static_cast<std::uint32_t>(scr->width);
        modeDesc.resolution.height  = static_cast<std::uint32_t>(scr->height);
        
        /* Get refresh reate from X11 extension Xrandr */
        if (auto scrCfg = XRRGetScreenInfo(dpy, rootWnd))
        {
            modeDesc.refreshRate = static_cast<std::uint32_t>(XRRConfigCurrentRate(scrCfg));
            XRRFreeScreenConfigInfo(scrCfg);
        }
    }
    
    return modeDesc;
}
Example #9
0
IWmeDebugObject *CScValue::DbgGetValNative() {
	return GetNative();
}
IWmeObject* CScValue::GetValNative()
{
    return (CBScriptable*)GetNative();
}
Example #11
0
std::wstring LinuxDisplay::GetDeviceName() const
{
    const char* name = DisplayString(GetNative());
    std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
    return converter.from_bytes(name);
}
Example #12
0
bool LinuxDisplay::IsPrimary() const
{
    return (screen_ == DefaultScreen(GetNative()));
}