标签: rendering

Ruby on Rails - 如何使用has_many关联呈现为xml模型

我有一个ruby on rails应用程序,它有两个模型--ltests和sub_tests.ltest has_many与sub_tests 有"关联".在ltests的show方法如下.

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @ltest }
end
Run Code Online (Sandbox Code Playgroud)

这将呈现ltest对象.但是,属于ltest的sub_tests不会呈现.

我怎样才能做到这一点?

<ltest>
....
   <sub_test>
   ...
   </sub_test>
   <sub_test>
   ...
   </sub_test>
</ltest>
Run Code Online (Sandbox Code Playgroud)

我尝试使用这样的视图渲染它:

但这会生成两个xml文档,而不是嵌入在ltests中的sub_tests文档.

有关如何做到这一点的任何建议?

ruby xml rendering ruby-on-rails

5
推荐指数
3
解决办法
6192
查看次数

浏览器没有观察到data-*的变化,CSS属性选择器属性没有渲染

鉴于此CSS:

[data-myplugin-object="blue-window"]{
    background-color: #00f;
}

[data-myplugin-object="red-window"]{
    background-color: #f00;
}
Run Code Online (Sandbox Code Playgroud)

而这个jQuery:

$('[data-myplugin-object="blue-window"]').each(function(event){
    $(this).data({
        'myplugin-object': 'red-window'
    });
});
Run Code Online (Sandbox Code Playgroud)

这个HTML片段:

<div data-myplugin-object="blue-window">
    <p>Hello world</p>
</div>
Run Code Online (Sandbox Code Playgroud)

现在,人们会期望当jQuery片段被执行时(正确延迟到页面加载完成为止)我的蓝色窗口(最初呈现为蓝色)将变为红色.

不,它肯定没有; 并且分别在Firefox和Chrome中使用Firebug和开发者工具,我无法观察到data-*属性的任何变化.

为了使浏览器(以及DOM工具箱)能够观察到变化,我是否需要恢复.attr()或者是否有解决方法?

css jquery dom rendering custom-attributes

5
推荐指数
1
解决办法
1858
查看次数

display:none仍然使用渲染性能

可以说我有这样的标记

<div style='display:none'>
    <!--Flash Object-->
</div>
Run Code Online (Sandbox Code Playgroud)

浏览器是否仍然会使用资源来加载Flash对象,或者它会被延迟直到进行javascript调用来切换dislplay:block;

现在请记住,我不是在谈论加载对象.我在谈论渲染它.我澄清这一点的原因是因为如果我将flash对象更改为img标记,它仍然会下载资源.

这背后的主要原因是responsive css design它很好并且很好地将您的网站更改为适合屏幕的CSS布局,但渲染资源需要时间并且我不确定浏览器如何处理未下载的资源.

css browser resources rendering responsive-design

5
推荐指数
1
解决办法
1103
查看次数

如何使用OpenGL ES渲染到Surface,没有GLSurfaceRenderer

我需要android.view.Surface在Android本机C++代码中将解码的视频帧绘制到对象中.

我知道这样做的常用方法是实现GLSurfaceView.Renderer接口并从中调用本机方法onDrawFrame().但是我无法使用它,我需要将Surface对象传递给本机方法并从那里开始处理它.

我打算使用OpenGL ES API来完成所有渲染工作,因为它是跨平台的.但我不知道Surface对象在哪里.

我已经看过几个使用的例子ANativeWindow_fromSurface().如果我没有被迫使用OpenGL,我想我可以这样做.

那么我在哪里"设置"我的Surface对象在本机代码中,所以我很好去渲染我的场景帧?

编辑:好的,我想我只是不知道EGL标准,这似乎是我在本案例中所需要的.

但是,我仍然在寻找一种方法来将一个android.view.Surface对象"映射"或"转换" 为由EGL上下文处理的任何结构,我假设是这样EGLNativeWindowType,而不需要访问任何特定于Android的API.

提前致谢.

rendering opengl-es android-ndk

5
推荐指数
0
解决办法
2850
查看次数

从相机获取每个像素的深度

我有一个网格模型,并使用VTK从给定的摄像机位置(x,y,z)渲染它的视图.我可以将其保存为RGB图像(640x480)但我还想保存深度图,其中每个像素存储来自相机的深度值.

我已经尝试Zbuffer通过以下示例使用渲染窗口给出的值.问题是Zbufer只存储[0,1]范围内的值.相反,我正在尝试创建合成范围图像,其中我存储来自相机的每个像素的深度/距离.类似于Kinect生成的图像,我试图从网格模型的特定视点创建一个.

编辑 - 添加一些代码

我目前的代码:

加载网格

string mesh_filename = "mesh.ply";
    vtkSmartPointer<vtkPLYReader> mesh_reader = read_mesh_ply(mesh_filename);

    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputConnection(mesh_reader->GetOutputPort());

    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);

    vtkSmartPointer<vtkRenderer> renderer =  vtkSmartPointer<vtkRenderer>::New();
    vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
    renderWindow->AddRenderer(renderer);
    renderWindow->SetSize(640, 480);

    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
    renderWindowInteractor->SetRenderWindow(renderWindow);

    //Add the actors to the scene
    renderer->AddActor(actor);
    renderer->SetBackground(1, 1, 1);
Run Code Online (Sandbox Code Playgroud)

创建一个相机并将其放置在某个地方

vtkSmartPointer<vtkCamera> camera = vtkSmartPointer<vtkCamera>::New();

    renderer->SetActiveCamera(camera);
    camera->SetPosition(0,0,650);
    //Render and interact
    renderWindow->Render();
Run Code Online (Sandbox Code Playgroud)

从z缓冲区获取结果

double b = renderer->GetZ(320, 240);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,这给出了0.999995.由于值在[0,1]之间,我不知道如何解释这个,因为你可以看到我已经将相机设置为在z轴上650个单位,所以我假设在这个像素处的z距离(在渲染的RGB中的对象上应该接近650.

c++ opengl rendering zbuffer vtk

5
推荐指数
1
解决办法
1299
查看次数

为什么内联脚本在放在页面底部时会阻止渲染?

我阅读了高性能网站:前端工程师的基本知识,其中作者建议所有JavaScript代码都应该外部化并放在页面底部而不是放在头脑中.

这个例子说明了这一点.在外部脚本标签块都下载并逐步呈现页面,因此该解决方案是把它在页面的底部.

然而,在他的第二本书" 更快的网站:网络开发者的性能最佳实践"中,他谈到了内联 JavaScript标签.

内联脚本还阻止下载和呈现页面,因此他建议将它们也移动到页面底部.但是,此操作仍然完全阻止页面的呈现,如此示例中所示

为什么将外部脚本移动到页面底部会让页面逐步呈现,同时移动内联脚本会完全阻止呈现,直到执行脚本为止?


PS:

问题不在于为什么要将JavaScript添加到页面底部而不是将它们放在头部.这就是为什么底部内联脚本阻止渲染而底部外部脚本没有阻止渲染的原因.

html javascript browser performance rendering

5
推荐指数
1
解决办法
3069
查看次数

反向(移除)抗锯齿滤波器

我有一组消除锯齿的灰度PNG图像.我需要知道如何以编程方式恢复抗锯齿效果并再次获得锐利边缘.

我正在使用GDI +,但我对代码不太感兴趣.如果可以构建这样的矩阵,我需要一个算法,可能是卷积滤波器.

灰度图像(应该)仅包含6种颜色(或不同的灰色阴影).这样我以后可以使用Color-Lookup过滤器对它们进行重新着色.但是,当保存的图像时,Photoshop会自动应用抗锯齿,因此边缘模糊(因为启用了双立方插值模式).我需要恢复这种效果.

这是一个例子:

在此输入图像描述

这是Photoshop的截图

有人建议我应该使用Sharpen过滤器,所以我在photoshop上试了一下.以下是它的外观:

在此输入图像描述

即使外边缘很细,2种不同颜色相遇的边缘也会显示出瑕疵.

编辑:

这就是我最终做到的方式.这是非常即兴的,可能会做得更好,更快,但我找不到更好的解决方案.

我们的想法是迭代每个像素,得到它的直接邻居并将它的颜色与它们的颜色进行比较.如果它由相同颜色的至少2个像素支持,则它还检查相邻像素是否也被支持.如果不是,则用自己的邻居像素替换邻居像素.

码:

    private static void Resample(Bitmap bmp)
    {
        // First we look for the most prominent colors
        // i.e. They make up at least 1% of the image
        Hashtable stats = new Hashtable();

        for (int x = 0; x < bmp.Width; x++)
        {
            for (int y = 0; y < bmp.Height; y++)
            {
                Color px = bmp.GetPixel(x, y);
                if (px.A == 0)
                    continue;

                Color pxS = Color.FromArgb(255, px);
                if (stats.ContainsKey(pxS.ToArgb())) …
Run Code Online (Sandbox Code Playgroud)

graphics rendering image-processing antialiasing imagefilter

5
推荐指数
1
解决办法
4775
查看次数

Interface Builder剪切可设计视图

我真的需要一只手.我创建了一个UIBabel的@IBDesignable子类,它可以在XCode Interface Builder中正常工作.但是,即使我将"clipsToBounds"设置为false,Interface Builder仍会剪切它,同时更改@IBInspectable属性.

如果我在模拟器或设备上运行应用程序,UILabel不会被剪裁并给出我想要的结果(同时仍然应用Interface Builder所具有的值).

变更前(子视图可见) 改变之前

在界面建筑师的变化之后(子视图不在视野范围内) 更改后(构建器)

模拟器更改后(子视图如预期) 改变后(模拟器)

任何帮助都将受到大力赞赏.自定义类的代码如下.

@IBDesignable class UIFeaturedLabel: UILabel {

@IBInspectable var borderWidth: Float = 4
@IBInspectable var borderOffsetX: Float = 15
@IBInspectable var borderOffsetY: Float = 5
@IBInspectable var borderColor: UIColor = UIColor.whiteColor()

private var headerView:UIView!
private var footerView:UIView!

override init() {
    super.init()
    createViews()
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    createViews()
}

override init(frame: CGRect) {
    super.init(frame: frame)
    createViews()
}

func createViews() {
    clipsToBounds = false
    layer.masksToBounds = false

    headerView = UIView() …
Run Code Online (Sandbox Code Playgroud)

xcode rendering interface-builder ios ibdesignable

5
推荐指数
1
解决办法
716
查看次数

为什么ListView呈现某些字符的速度这么慢?

更新1:我同时编写了MFC-C ++实现和老式的Win32应用程序,并录制了一段视频,演示了问题的严重程度:

https://www.youtube.com/watch?v=f0CQhQ3GgAM

由于老式的Win32应用程序没有出现此问题,因此使我相信C#和MFC都使用必须导致此问题的同一呈现API(基本上是怀疑我的问题可能出在OS /图形驱动程序级别)。


原始帖子:

当不得不在ListView中显示一些REST数据时,我遇到了一个非常特殊的问题:

对于某些输入,在水平滚动时,ListView渲染在字面上会缓慢地进行爬网。

在我的系统上,使用典型的带有“ OptimizedDoubleBuffer”的子类ListView,在ListView中只有6个项目时,在滚动到我可以看到标题“游动”的点时,渲染速度会变慢,即在编译过程中项目和标题的渲染滚动不匹配。

对于具有10个项目的常规非子类ListView,我可以从字面上看到滚动时分别绘制每个项目(重新绘制大约需要1-2s)。

这是示例代码(是的,我知道它们看起来像熊和蝴蝶的表情;毕竟,从用户提供的数据中发现了这个问题):

using System;
using System.Windows.Forms;

namespace SlowLVRendering
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            const string slow = "?(  ´??°)? ?????~ ? ( ?(  ´??°)?  ? ?´º?º ?? ) (????)??(  ´??°)? ?????~ ? ( ?(  ´??°)?  ? ?´º?º ?? ) (????)?";
            ListView lv = new ListView();
            lv.Dock = DockStyle.Fill;
            lv.View= View.Details; …
Run Code Online (Sandbox Code Playgroud)

.net c# listview rendering winforms

5
推荐指数
1
解决办法
681
查看次数

更新的gradle依赖项后呈现问题

我刚刚更新了build.gradle(Module:app)dependecies,之后在Android Studio上出现了渲染问题.有什么不对,在更新依赖关系之前,everythink工作正常

现在是这样的:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.android.support:support-v4:23.0.0'

    compile 'com.android.support:recyclerview-v7:23.0.0'
}
Run Code Online (Sandbox Code Playgroud)

my_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/myLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

        <android.support.v4.view.ViewPager
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white"
            android:layout_marginTop="4dp"
            android:paddingTop="0dp"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:id="@+id/myPager"/>

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appBar"
            android:layout_width="match_parent"
            android:layout_height="120dp"
            android:fitsSystemWindows="true">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:elevation="4dp"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleMarginBottom="70dp"
                app:expandedTitleMarginEnd="64dp"
                app:expandedTitleMarginStart="48dp"
                app:statusBarScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/appToolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin" />

                <android.support.design.widget.TabLayout
                    style="@style/AppTheme.TabLayout"
                    android:id="@+id/appTabs"
                    android:scrollbars="horizontal"
                    android:layout_gravity="bottom"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_scrollFlags="scroll|enterAlways" />
            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

并得到这个错误:

Rendering Problems Missing styles. …
Run Code Online (Sandbox Code Playgroud)

dependencies android rendering gradle android-styles

5
推荐指数
1
解决办法
9052
查看次数