软件简介

Stencil 是一个 CodeIgniter 的模板引擎,通过简单可靠的方式来渲染 HTML 页面。

控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->stencil->layout('home_layout');
        $this->stencil->slice('header');
        $this->stencil->slice('footer');
    }

    public function index()
    {
        $this->stencil->title('Home Page');

        $this->stencil->js('some-plugin');
        $this->stencil->js('home-slider');
        $this->stencil->css('home-slider');

        $this->stencil->meta(array(
            'author' => 'Nicholas Cerminara',
            'description' => 'This is the home page of my website!',
            'keywords' => 'stencil, example, fun stuff'
        ));

        $data['welcome_message'] = 'Welcome to my website using Stencil!';
        $this->stencil->paint('home_view', $data);
    }
}

/* End of file home.php */
/* Location: ./application/controllers/home.php */

模板:

<!doctype html>
<html>
<head>
    <!-- robot speak -->    
    <meta charset="utf-8">
    <title><?php echo $title; ?> | My Stencil Website</title>
    <?php echo chrome_frame(); ?>
    <?php echo view_port(); ?>
    <?php echo apple_mobile('black-translucent'); ?>
    <?php echo $meta; ?><!-- //loads data from $this->stencil->meta($args) in controller -->

    <!-- icons and icons and icons and icons and icons -->
    <?php echo favicons(); ?>

    <!-- crayons and paint -->  
    <?php echo add_css(array('bootstrap', 'style')); ?>
    <?php echo $css; ?><!-- //loads data from $this->stencil->css($args) in controller -->

    <!-- magical wizardry -->
    <?php echo jquery('1.9.1'); ?>
    <?php echo shiv(); ?>
    <?php echo add_js(array('bootstrap.min', 'scripts')); ?>
    <?php echo $js; ?><!--  //loads page specific $this->stencil->js($args) from Controller (see docs) -->
</head>
<!-- $body_class will always be the class name -->
<body class="<?php echo $body_class; ?>">

    <header>
        <?php echo $header; ?>
    </header>

    <h1><?php echo $welcome_message; ?></h1>

    <section class="content">
        <?php echo $content; ?><!-- This loads home_view -->
    </section>

    <footer>
        <?php echo $footer; ?>
    </footer>

</body>
</html>
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表于大前端专区
2020/02/12 12:43

UnityShader实例:Stencil Buffer&Stencil Test

Stencil Buffer&Stencil Test 在开始前先吐槽下unity的官方文档,说实话关于stencil ,官方文档真的是可以不要了,除了记流水账般解释了下各个参数的作用,作为例子的shader也是让人一头雾水,整个文档看下来,你发觉stencil是用来干嘛的,怎么操作,仍然不知道。好在unity的shaderlab 和D3D,OpenGL等shader语言是一致的,还可以从它们的相关解释来了解stencil。关于unity的stencil,我对它的理解还是不够深入,unity是如何初始...

0
1
发表于大前端专区
2020/05/17 09:08

利用Stencil来优化局部后处理特效

我们先拿这个很常见的金棒棒作为例子吧。 只是例子就不要再和我说什么十字片,广告牌叠加了。这个效果的实现就是用纯色在RT上重绘原模型给一次高斯模糊后叠回原图。 加了Stencil后计算量下降了一半(为方便对比,我砍掉了后处理流程最后的原图Blit流程和人物绘制部分,仅显示了downsample和高斯模糊的量) 原理: Stencil和ZTest就如同两兄弟,非常相似,但前者却常常被忽略。大家都知道,在拥有Early-Z(准确的说是Early-ZS,也...

0
0
发表了博客
2019/05/06 08:42

Directx11教程(49) stencil的应用-镜面反射

原文:Directx11教程(49) stencil的应用-镜面反射 本教程中,我们利用stencil来实现一个镜面反射效果。 1、首先我们要在D3DClass中增加几个成员变量及函数。 ID3D11DepthStencilState* m_depthStencilStateMirror; ID3D11DepthStencilState* m_depthStencilStateReflect; m_depthStencilStateMirror是渲染镜子时候,使用的depth stencil 状态,我们设置stencil 函数为D3D11_COMPARISON_ALWAYS,这样,stencil测试总能pass,然后p...

0
0
发表了博客
2018/01/03 18:37

关于模板测试几个问题

1.模板测试的直接结果是什么?   答:通过模板测试的像素会进入到下一步的深度测试,以期被绘制到color buffer上,没有通过的话,直接丢掉它。 2.stencil buffer的值如何更新?   答:1.glClearStencil(指定值); 重置stencil buffer里的值为指定值。     2.glClear(GL_STENCIL_BUFFER_BIT); 重置stencil buffer里的值为0.    3.通过glStencilOp来指定测试(模板测试或深度测试)通过或未通过时,如何修改stencil buffer里的值...

0
0
2016/04/13 11:48

放大镜实现代码2

#ifndef __STFilter__ #define __STFilter__ #include "cocos2d.h" #include "STMacro.h" NS_ST_BEGIN USING_NS_CC; using namespace std; /** 类似滤镜的效果。如显微镜等。 */ class STFilter : public Node { typedef std::function<void(const string &,const Rect &)> OverlapListener; CC_SYNTHESIZE_READONLY(ClippingNode*, m_pClipper, ClippingNode); CC_SYNTHESIZE_READONLY(Sprite*, m_pStencil, Stencil); CC_SYNT...

0
0
2016/04/13 11:49

放大镜实现代码3

#ifndef Magnifier_h #define Magnifier_h #include "cocos2d.h" #include "STMacro.h" #include "STFilter.h" #include "STTouchableSprite.h" NS_ST_BEGIN USING_NS_CC; using namespace std; /** 放大镜 */ class STMagnifier : public Node { STFilter *m_pFilter; STTouchableSprite *m_handShank; public: /** 使用图片路径来初始化 @param handShank 放大镜手柄 @param stencil 透视图片 @param content 放大查看的图片 ...

0
0
发表了博客
2019/03/20 10:37

OSG描边特效osgFX::Outline的修改

对一个三维场景中的物体实现描边特效,可以参考osg范例osgoutline 这个描边特效使用了模板缓存Stencil来实现,参见源代码osgFX/Outline.cpp 使用了两个Pass 第一个Pass绘制第一遍模型,将模型覆盖的模版区域写入值1 第二个Pass绘制第二遍模型,并且用线框模式(PolygonMode::LINE)绘制,设置线宽(例如10),可以绘制的条件是在模版值不等于1的地方 这样由于线宽的缘故,最外侧的线框就保留了一半,看起来就是模型的轮廓 以上的...

0
0
发表了博客
2018/02/27 10:25

ugui 灰度shader mask冲突解决 转。。。

项目上遇到了一个问题,灰度shader无法在mask下使用,两个之间会一定的冲突。经查验是mask组件对shader的相关属性有要求,添加相关的属性则可符合要求使其他shader使用UGui里的mask。 Shader "Custom/Opaque" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) // required for UI.Mask _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ...

0
0
发表了博客
2018/07/26 15:36

[Shader2D]漩涡效果

1:效果图 2:源码 Shader "Custom/uiblood" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _CloudTex("噪声",2D) ="white"{} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stencil Operation", Float) = 0 _StencilWriteMask ("Stencil Write Mask", Float) = 255 _StencilReadMask ("Stencil Re...

0
0
发表于软件架构专区
2020/05/22 08:35

延迟渲染与前向渲染

The basic idea behind deferred shading is to perform all visibility testing before performing any lighting computations. -RealTimeRendering 3rd 延迟着色的基本思想是在执行任何光照计算之前执行所有可见性测试。 General goal of the approaches is to reduce the amount of fragments shaded (i.e., shade final visible fragments only).https://robotized.arisona.ch/wp-content/uploads/2013/10/deferred_renderi...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部